関数にエイリアスを使用しますか?

関数にエイリアスを使用しますか?

yummy.shスクリプトがあります

#!/bin/bash
alias yumy='yum install -y '
yumprovision() {
  yumy
}

このスクリプトを実行すると、次の結果が表示されます。

bash: yumy: command not found

関数にエイリアスをロードしないのはなぜですか?

ベストアンサー1

次の機能も使用できますyumy

#!/bin/bash
yumy() {
    yum install -y "$@"
}
yumprovision() {
    yumy
}

"$@"この関数のパラメータに拡張されるので、yumy foo barと同じですyum install -y foo bar

デフォルトでは、Bashは非対話型シェルのエイリアスを拡張しませんが、shopt expand_aliases次の場合に変更できます。本物見たいマニュアルに組み込まれたShopt。しかし、これを行う理由はありません。機能は多くの点で優れています。

おすすめ記事