私のスクリプトでは、ほとんどの場合、色にエスケープ シーケンスを使用しています。
R='\e[0m'
g='\e[0;32m'
echo -e "${g}green text${R}"
-e
省略できるように、デフォルトの動作を作成したいと思います。どのように?
通常、そのためにエイリアスを使用しますが、これは多くのシェルで機能します。ただし、bash
エイリアスは非対話型シェルでは展開されず、非対話型のスクリプトに使用する必要があります。
引用man bash
:
ほとんどすべての目的で、エイリアスはシェル関数に取って代わられています
したがって、関数を使用できますが、間違いや無限再帰を避けるために、別の方法で呼び出します。
myecho()
{
echo -e "$@"
}
そして、あなたがそれをしているなら、あなたはもっとうまくやることができます:
green_echo()
{
echo -e "${g}$@${R}"
}
または、最初の引数として色を取得し、それをシフトアウトして$@
、スイッチを使用して正しいエスケープ シーケンスを選択することもできます。制限はありません。シェルは完全なプログラミング言語であることを覚えておいてください。