Я хочу получить исходный цветной вывод команды в переменной, которую я могу распечатать.
У меня есть следующий скрипт:
#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)
Как я могу получить весь вывод в переменной?
Добавьте двойные кавычки вокруг ваших команд:
res="$(script -q /dev/null mocha $(find "tests/non-ui" -name "*.js"))"
echo "$res"
Это сохранит цвета ANSI.
Добавьте двойные кавычки вокруг ваших команд:
res="$(script -q /dev/null mocha $(find "tests/non-ui" -name "*.js"))"
echo "$res"
Это сохранит цвета ANSI.
Добавьте двойные кавычки вокруг ваших команд:
res="$(script -q /dev/null mocha $(find "tests/non-ui" -name "*.js"))"
echo "$res"
Это сохранит цвета ANSI.