окраска в heredocs, Баш
Если я ранее определил переменную цвета следующим образом:
txtred='e[1;31m'
Как бы я использовал его в heredoc :
cat << EOM
[colorcode here] USAGE:
EOM
Я имею в виду, что я должен написать вместо [colorcode here], чтобы передать это использование
текст красный? ${txtred} не будет работать, так как это то, что я использую во всем моем
сценарий bash, вне heredoc
1 ответ:
Вам нужно что-то, чтобы интерпретировать последовательность побега, что
catне будет делать. Вот почему вам нужноecho -eвместо простоecho, чтобы заставить его работать нормально.cat << EOM $(echo -e "${txtred} USAGE:") EOMРаботает
Но вы также можете не использовать escape-последовательности, используя
textred=$(tput setaf 1), а затем просто использовать переменную напрямую.textred=$(tput setaf 1) cat <<EOM ${textred}USAGE: EOM