echoes un shell integrado en Bash y dash ( /bin/sh). Si se ejecuta echodesde la línea de comandos, está utilizando el Bash incorporado, si está ejecutando su script de shell con shel Dash incorporado.
La versión de guión de echono conoce la -eopción, pero solo muestra algo literalmente sin ningún manejo especial para las \secuencias.
Use Bash para ejecutar su script de shell o use en /bin/echolugar de echo:
/bin/echo -e "\e[1;31mThis is red text\e[0m"
Para evitar los problemas con diferentes versiones de echousted, puede utilizar printfen su lugar. En contraste, echoprintfsiempre interpreta las \secuencias pero no agrega automáticamente un salto de línea al final, por lo que debe agregarlo \nal final si lo desea.
Como algunas versiones de printfNo entiendo \e, deberías usar \033en su lugar:
Funciona. /bin/echocon guión ( /bin/sh) y bash; echocon bash o ./tes.shambos funcionan correctamente. El siguiente código bashsolo funciona. si [$ UID -ne 0]; luego echo "Usuario no root" más echo "Usuario raíz" fi
qingfeng
1
No sh test.shlo ejecutes, imprime el texto en color blanco como dijiste ... Después de crear el script, hazlo ejecutable,
sudo chmod +x /path/test.sh
Ejecute el script con sudo, like sudo ./test.sho ./test.shboth funcionará.
Corro chmod a+x test.sh, imprime el texto en color de lectura. Cuál es la diferencia. ./test.shdebería ser igual a sh test.sh¿Qué pasó en Linux?
qingfeng
no tuvo que usar sh mientras ejecutaba el script, lo creó con el intérprete bash, #! /bin/bashpor lo que debe usarlobash test.sh
Avinash Raj el
Y también .significa directorio actual.
Avinash Raj
Vea la captura de pantalla, mi archivo test.sh se coloca dentro del escritorio, así que me mudé a esa carpeta de escritorio y luego ./test.shejecuté, finalmente funciona. Tenga en cuenta que ejecute el script .solo si se presentó dentro del directorio actual.
Avinash Raj
1
Esto necesita el comando correcto en el formato correcto es todo.
Declaración de eco adecuada: echo "Hello World!"
Declaración de eco adecuada con color: echo "\e[1;31mHello World!\e[0m"
Agregar color a un script bash es una de esas cosas muy simples pero fácilmente confusas. =)
Este sitio podría ayudarlo a explicarlo todo claramente. A menudo lo uso como referencia porque, ¿quién puede recordar todos los códigos de color correctos? Jajaja
/bin/echo
con guión (/bin/sh
) y bash;echo
con bash o./tes.sh
ambos funcionan correctamente. El siguiente códigobash
solo funciona. si [$ UID -ne 0]; luego echo "Usuario no root" más echo "Usuario raíz" fiNo
sh test.sh
lo ejecutes, imprime el texto en color blanco como dijiste ... Después de crear el script, hazlo ejecutable,Ejecute el script con
sudo
, likesudo ./test.sh
o./test.sh
both funcionará.O
Ejecutar el script con
bash
,fuente
chmod a+x test.sh
, imprime el texto en color de lectura. Cuál es la diferencia../test.sh
debería ser igual ash test.sh
¿Qué pasó en Linux?#! /bin/bash
por lo que debe usarlobash test.sh
.
significa directorio actual../test.sh
ejecuté, finalmente funciona. Tenga en cuenta que ejecute el script.
solo si se presentó dentro del directorio actual.Esto necesita el comando correcto en el formato correcto es todo.
Declaración de eco adecuada:
echo "Hello World!"
Declaración de eco adecuada con color:
echo "\e[1;31mHello World!\e[0m"
Agregar color a un script bash es una de esas cosas muy simples pero fácilmente confusas. =)
Este sitio podría ayudarlo a explicarlo todo claramente. A menudo lo uso como referencia porque, ¿quién puede recordar todos los códigos de color correctos? Jajaja
fuente