在我的劇本我幾乎總是使用轉義序列顏色:UNIX回聲默認參數
R='\e[0m'
g='\e[0;32m'
echo -e "${g}green text${R}"
我想打-e
默認行爲,所以我可以忽略它。怎麼樣?
在我的劇本我幾乎總是使用轉義序列顏色:UNIX回聲默認參數
R='\e[0m'
g='\e[0;32m'
echo -e "${g}green text${R}"
我想打-e
默認行爲,所以我可以忽略它。怎麼樣?
通常你會使用別名是什麼,以及它工作在很多炮彈。但bash
別名在非交互式shell中未展開,並且您希望它用於非交互式腳本。
援引man bash
:
幾乎每目的,別名是通過外殼的功能所取代
所以,你可以使用的功能,但我不同的調用它,以避免錯誤或無限遞歸:
myecho()
{
echo -e "[email protected]"
}
如果你是它,你可以做的更好:
green_echo()
{
echo -e "${g}[email protected]${R}"
}
或者甚至更好,您可以將顏色作爲第一個參數,將其移出[email protected]
並使用開關選擇正確的轉義序列。沒有限制,請記住shell是一種完整的編程語言。
您可以直接在腳本中執行別名... –
@Maxime:我剛剛測試了一個腳本'#!/ bin/bash','alias foo = echo','foo bar',它表示'line 3:foo:command not found'。我猜你可以使用shell選項'expand_aliases',但這可能是一個壞主意...... – rodrigo
對我來說,它適用於/ bin/sh,並且它不適用於/ bin/bash。嘗試改變你的生日? –
幾乎要說了;) – mtk
你可以用'-E'覆蓋這個默認值,以防你需要禁用轉義序列。 – dmedvinsky
這不會在腳本內工作,除非您設置'shop -s expand_aliases',但在此旁邊是一個工作示例,謝謝 – bartekbrak