bashのすべてのコマンドによってどの実行可能ファイルが実行されるかを知りたいです。
例:
- ここにFirefoxがインストールされています
/usr/bin/firefox
。$PATH
alias browser=firefox
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"
サブシェルを作成するとローカルエイリアスが削除される可能性があるため、これを取得するには(わかりやすく!)エイリアスを使用する必要があります。