Я работаю над сценарием установки, который должен выполнять различные задачи и завершать работу с кодом ошибки при первом сбое.
При выполнении задачи он выводит на стандартный вывод строку комментария и указывает ли задачаУспешно или нет, он печатает «OK» или «FAIL» соответственно.
Я хочу покрасить OK зеленым и FAIL красным, чтобы я использовал цветовые коды ANSI / VT100, но когда я сбросил цвет обратно на ноль для некоторыхпричина, по которой я обнаружил, что к тексту добавлен символ «ì».
Вот упрощенная версия скрипта, которую я использую:
#!/bin/sh
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'
task() {
echo -n "$1..."
if $2 >> $LOG 2>&1; then
echo "${GREEN}OK${NC}"
else
echo "${RED}FAIL${NC}"
fi
}
LOG=./task.log
echo "Starting long task executor" > $LOG
if ! task "Performing a long task" "sleep 3"; then
exit 1
fi
echo "Bye"
, а вот вывод:
Performing a long task...OKì
Bye
Почему у меня есть это «that» в конце ОК?
Что я делаю не так?
Спасибо