2014-07-11 80 views
2

如果我以前定義的顏色變量是這樣的:着色在here文檔時,bash

txtred='\e[1;31m' 

我將如何使用它定界符

cat << EOM 

    [colorcode here] USAGE: 

EOM 

我的意思是,我應該在的地方寫[colorcode here]呈現該用法 文字紅色? ${txtred}將無法​​正常工作,因爲這是我使用我的整個 bash腳本什麼,定界符

回答

7

之外你需要的東西來解釋轉義序列cat不會做。這就是爲什麼你需要echo -e而不是隻有echo才能使其正常工作。

cat << EOM 
$(echo -e "${txtred} USAGE:") 
EOM 

工作

但你也不能使用textred=$(tput setaf 1)使用轉義序列,然後就直接使用的變量。

textred=$(tput setaf 1) 

cat <<EOM 
${textred}USAGE: 
EOM 
+0

好。有沒有一種方法來保存格式化,因爲正確地知道,它會將'USAGE'文本移到正確的位置? – branquito

+0

對不起,現在,當我使用'$ {tr}'而不是'$ tr'時。這是因爲我需要在'$ tr'和'USAGE'之間插入空格。 – branquito