まだ定義されていないコマンドに基づいて関数を作成するには?

まだ定義されていないコマンドに基づいて関数を作成するには?

私のセッションにいくつかの環境設定をロードするいくつかのスクリプト(私の制御の範囲外)があります。したがって、ロードしたいときはいつでも一連のコマンドを実行する必要があります。

export SOME_VAR=/path/to/main/folder
source $SOME_VAR/loading/stuff.sh --quiet
loadApp1
loadApp2
loadApp3
loadApp4

1つのコマンドでこれを実行したいので、関数(ほぼ上の行)を作成しましたが、うまくいきません。

私の考えでは、これはloadAppsがエイリアスであり、stuff.shBashが私の関数を解析するときにまだエイリアスを知らないからだと思います。

移植性を失うことなく単一のコマンドを使用してこれを行うにはどうすればよいですか?

$HOME/.bashrcPS:エイリアスは他の場所で変更できますが、表示されないため、エイリアスをコピーしたくありません。

ベストアンサー1

エイリアスの場合は、次のように書く必要があります。

myFunction() {
  export SOME_VAR=/path/to/main/folder
  . "$SOME_VAR/loading/stuff.sh" --quiet
  eval '
  loadApp1
  loadApp2
  loadApp3
  loadApp4'
}

読み取り/解析時にエイリアスが拡張されます。evalそのような解析を強制します。

おすすめ記事