Команда эха с параметром цвета в сценарии и команда работают по-другому

Если я работаю echo -e "\e[1;31mThis is red text\e[0m" в строке команды Это распечатывает красный текст.

Однако, если я использую, пишут это в файле сценария test.sh

#! /bin/bash
echo -e "\e[1;31mThis is red text\e[0m"

выполненный $ sh test.sh

Это распечатывает -e \e[1;31mThis is red text\e[0m

Почему они действуют differntly?

15
задан 14 March 2014 в 15:55

3 ответа

echo оболочка, встроенная в Bash и тире (/bin/sh). Если Вы работаете echo из командной строки Вы используете встроенный Bash при выполнении сценария оболочки с sh Вы используете встроенного Тире.

Версия тире echo не знает -e опция, но просто производит что-либо дословно без любой специальной обработки для \ последовательности.

Или используйте Bash для выполнения сценария оболочки или использования /bin/echo вместо echo:

/bin/echo -e "\e[1;31mThis is red text\e[0m"

Избегать проблем с различными версиями echo можно хотеть использовать printf вместо этого. В отличие от echo printf всегда интерпретирует \ последовательности, но автоматически не добавляют перевод строки в конце, таким образом, необходимо добавить \n в конце, если Вы хотите тот.

Как некоторые версии printf не понимать \e необходимо использовать \033 вместо этого:

printf "\033[1;31mThis is red text\033[0m\n"
28
ответ дан 16 November 2019 в 13:23

Не выполняйте его с sh test.sh, это печатает текст в белом цвете как Вы, сказал.. После создания сценария сделайте его исполняемым файлом путем выполнения,

sudo chmod +x /path/test.sh

enter image description here

Выполнение, сценарий с sudo, как sudo ./test.sh или ./test.sh оба будет работы.

Или

Выполнение сценарий с bash,

bash /path/test.sh
1
ответ дан 16 November 2019 в 13:23

Этому нужна корректная команда в правильном формате, все.

Надлежащий оператор эха: echo "Hello World!"

Надлежащий оператор эха с цветом: echo "\e[1;31mHello World!\e[0m"

Добавление цвета к сценарию удара является одной из тех очень простых, но легко запутывающих вещей.=)

Этот сайт мог помочь объяснить все это ясно Вам. Я часто использую его в качестве ссылки, потому что, кто может помнить все корректное право цветовых кодов? LOL

1
ответ дан 16 November 2019 в 13:23

Другие вопросы по тегам:

Похожие вопросы: