Bash

嘗試在 bash 中輸出顏色時出現問題

  • January 24, 2017

我有點迷茫,為什麼我需要所有這些反斜杠才能用正確的顏色列印“Hello World”。

xxx@yyy:/tmp$ echo $Red
\033[0;34m
xxx@yyy:/tmp$ echo $Red
\033[0;31m    xxx@yyy:/tmp$ echo -e "Hello ${Red} World" | sed "s/^/\\\\\\${Blue}/g" | xargs echo -e
Hello  World

這是什麼原因?還有其他更簡單的方法可以將顏色添加到原始迴聲中嗎?我需要做一些類似的事情,我會在其中獲取一些文本文件,然後在控制台中查看之前嘗試輸入顏色。

謝謝

echo如果您所做的只是一次為整個文本著色,則無需將顏色程式碼和要輸出的文本組合到同一命令中:

red="$(echo -e "\033[0;31m")"
reset="$(echo -e "\033[0m")"
echo "$red"
echo "This text is red."
echo "$reset"

如果您嘗試更改嵌入的顏色程式碼;你同樣不需要撕掉整個轉義序列。要將紅色文本更改為黃色,您可以:

echo "$color_festooned_text" | sed 's/;31/;33/g'

引用自:https://unix.stackexchange.com/questions/339869