Acabo de notar que parece que la bandera -eno existe para el echocomando en mi shell en Linux. ¿Es solo una configuración desordenada o es "normal"?
Algún código como ejemplo:
#!/bin/sh
echo -e "\e[3;12r\e[3H"
Huellas dactilares:
-e \e[3;12r\e[3H
Esto funcionó antes! Supongo que algunos sttycomandos salieron terriblemente mal y ahora ya no funciona. Alguien sugirió que mi shera realmente justo bash.
shell
escape-characters
echo
BrainStone
fuente
fuente

echoconstrucción del/bin/shshell que proporciona eldashpaquete en Debian (un sistema operativo que puede tener Linux o FreeBSD como núcleo).Respuestas:
Porque usaste
sh, nobash, entonces elechocomandoshno tiene opción-e. Desde la página deshmanual:Y tampoco tiene
\e:fuente
shSoporte de varias implementacionesecho -e, en el momento de la compilaciónbashse les puede decir que no lo admitanecho -e. Es solo que ese sh particular (probablementedash) no es compatible-emientras que esebashsí lo hace.-eno es POSIX (de hecho, POSIX echo generalmente no acepta opciones (aunque está permitido admitir-n), ver aquí ), y/bin/shen su sistema parece ser un shell POSIX.-ees una extensión aceptada en algunos shells, pero no debe confiar en ella, no es portátil. Idealmente, useprintfo cambie a usar un shell que tieneecho -e.También vea las advertencias de
\een los comentarios a continuación, que deben reemplazarse por\033.fuente
shtampoco reconoce\e. Uso\033Tenga en cuenta que en cualquier momento y en casi cualquier shell, puede averiguar qué "eco" se llamará escribiendo
type echoowhich echo. Suele ser un caparazón incorporado. Por lo tanto, depende de qué "eco" esté instalado y de qué shell esté utilizando.fuente
which echono debe usarse, es probable que no le diga si está usando un incorporado porquewhichgeneralmente es un binario externo.typees bueno, sin embargo.type whichowhich which). ;)