Сброс цвета до нуля с помощью эха печатает символ i в конце, как этого избежать? - PullRequest
0 голосов
/ 03 декабря 2018

Я работаю над сценарием установки, который должен выполнять различные задачи и завершать работу с кодом ошибки при первом сбое.

При выполнении задачи он выводит на стандартный вывод строку комментария и указывает ли задачаУспешно или нет, он печатает «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» в конце ОК?

Что я делаю не так?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...