すべてのコマンドの実行可能ファイルをインポートする

すべてのコマンドの実行可能ファイルをインポートする

bashのすべてのコマンドによってどの実行可能ファイルが実行されるかを知りたいです。

例:

  1. ここにFirefoxがインストールされています/usr/bin/firefox$PATH
  2. alias browser=firefox
  3. alias br=browser

今、このような内容を入力したいと思います。getexecutable "br"その後、表示する必要があります。/usr/bin/firefox

答え1

以下は、単純なエイリアシングケースで機能するコメントに追加で作成したクイックスクリプトです。ただし、パラメータなどを含むすべての操作は悲惨に失敗します。

cmd="$1"
type=aliased
while [ "$type" = "aliased" ]; do
    output="$(type "$cmd")"
    type="$(cut -d ' ' -f 3 <<< "$output")"
    cmd="$(cut -d '`' -f 2 <<< "$output" | tr -d \')"
done
echo "$output"

サブシェルを作成するとローカルエイリアスが削除される可能性があるため、これを取得するには(わかりやすく!)エイリアスを使用する必要があります。

関連情報