Получить команду цветного вывода в переменной

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

У меня есть следующий скрипт:

#Colors RED='\033[0;31m' NC='\033[0m' # No Color # Runing test cases res=$(script -q /dev/null mocha $(find "tests/non-ui" -name "*.js")) #Command that runs test cases RESULT=$? [ $RESULT -ne 0 ] && echo -e "$res ${RED}Some TestCaes did not pass. Please check your code.${NC}" && exit 1 echo "All test cases passed.\n" exit 0

Он дает мне следующий вывод:

Some TestCaes did not pass. Please check your code.:13:16)

, где :13:16) часть - некоторые последние символы вывода этой команды res=$(script -q /dev/null mocha $(find "tests/non-ui" -name "*.js")).

Запуск mocha $(find "tests/non-ui" -name "*.js") только эта команда дает следующий результат:

All element creation test: 1) Label 0 passing (16ms) 1 failing 1) All element creation test: Label: AssertionError: false == true + expected - actual -false +true at Context.<anonymous> (tests/non-ui/sample-test.js:13:16)

Как я могу получить весь вывод в переменной?

0
задан 8 June 2017 в 14:35

3 ответа

Добавьте двойные кавычки вокруг ваших команд:

res="$(script -q /dev/null mocha $(find "tests/non-ui" -name "*.js"))"

echo "$res"

Это сохранит цвета ANSI.

1
ответ дан 22 May 2018 в 21:45
  • 1
    он уже находится в кавычках "$res ${RED}Some TestCaes did not pass. Please check your code.${NC}". – chandil03 8 June 2017 в 15:58
  • 2
    Да, но не ваша команда res = " ... " – Simon Sudler 8 June 2017 в 16:41
  • 3
    Ох, спасибо. – chandil03 8 June 2017 в 16:55

Добавьте двойные кавычки вокруг ваших команд:

res="$(script -q /dev/null mocha $(find "tests/non-ui" -name "*.js"))" echo "$res"

Это сохранит цвета ANSI.

1
ответ дан 18 July 2018 в 11:58

Добавьте двойные кавычки вокруг ваших команд:

res="$(script -q /dev/null mocha $(find "tests/non-ui" -name "*.js"))" echo "$res"

Это сохранит цвета ANSI.

1
ответ дан 24 July 2018 в 19:53

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

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