3

私のスクリプトでは、ほとんどの場合、色にエスケープ シーケンスを使用しています。

R='\e[0m'
g='\e[0;32m'
echo -e "${g}green text${R}"

-e省略できるように、デフォルトの動作を作成したいと思います。どのように?

4

2 に答える 2

5

以下をセットアップできますalias

alias echo='echo -e'

アクティブにすると、次を省略できます-e

echo "${g}green text${R}"
于 2013-07-05T06:52:01.443 に答える
1

通常、そのためにエイリアスを使用しますが、これは多くのシェルで機能します。ただし、bashエイリアスは非対話型シェルでは展開されず、非対話型のスクリプトに使用する必要があります。

引用man bash

ほとんどすべての目的で、エイリアスはシェル関数に取って代わられています

したがって、関数を使用できますが、間違いや無限再帰を避けるために、別の方法で呼び出します。

myecho()
{
    echo -e "$@"
}

そして、あなたがそれをしているなら、あなたはもっとうまくやることができます:

green_echo()
{
    echo -e "${g}$@${R}"
}

または、最初の引数として色を取得し、それをシフトアウトして$@、スイッチを使用して正しいエスケープ シーケンスを選択することもできます。制限はありません。シェルは完全なプログラミング言語であることを覚えておいてください。

于 2013-07-05T08:32:17.940 に答える