我正在寫一個bash腳本,我需要顏色輸出。我有需要時,它顯示在屏幕上被格式化這樣一個文本文件:如何從變量中創建回顯過程顏色命令?
>Barry's Whiskey Glass Drink Cup, XL 10 oz Dri... $0.75
example.org/product-page.php?id=1228741
>Cotton Bath Towel Pool Towel Brown - Easy Car... $6.11
example.org/product-page.php?id=1228763
>Cotton Bath Towel Pool Towel Red - Easy Care ... $6.11
example.org/product-page.php?id=1228766
>Mosiso MacBook Case for iPad Pro 12.9/MacBook... $1.95
example.org/product-page.php?id=1228850
在「> .....」文本必須是一種顏色,「$ ......」另一種顏色,和「example.org ....」淺灰色。我曾經嘗試這樣做:
tac newlist.txt | sed 's/ >/\r\n >/' > bwtext.txt
sed -i 's/>/>\\033\[0;34m/g' bwtext.txt
sed -i 's/\$/\$\\033\[0;33m/g' bwtext.txt
sed -i 's/http/\\033\[0;37mhttp/g' bwtext.txt
while read line
do
echo -e "${line}"
done < bwtext.txt
即插入正確的換碼到文件,但是當呼應出一行行,而不是處理的代碼,它只是打印它們字面上。
>033[0;34mFor Fitbit Alta Accessory Band, Silicone Repl... $033[0;33m1.97
033[0;37mexample.org/product-page.php?id=1247364
>033[0;34mTattify Gradient Nail Wraps - Love Like a Sun... $033[0;33m0.99
033[0;37mexample.org/product-page.php?id=1247367
>033[0;34mEA AromaCare Eucalyptus Essential Oil 120ml/4... $033[0;33m3.00
033[0;37mexample.org/product-page.php?id=1247370
... waiting 10 minutes for next update ...
我在做什麼錯,或者我該怎麼做對不對?謝謝。
考慮展示'printf'%b \ n''而不是'echo -e',以便在兼容POSIX的shell上正常運行。 (另外,在'xpg_echo'和'posix'標誌被設置的情況下,甚至bash也不會遵守'echo -e')。 –
另外,讓'while while read -r line'來避免消耗文字反斜槓,從而阻止它們在格式化字符串中被使用。 –
@CharlesDuffy:意見榮幸。 :-) – sjsam