окраска в 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