Bash

獲取任何命令的執行檔

  • July 23, 2015

我想知道對於 bash 中的任何命令執行哪個執行檔。

例子:

  1. 我在這里安裝了firefox /usr/bin/firefox,它在$PATH
  2. alias browser=firefox
  3. alias br=browser

現在我想輸入類似的東西getexecutable "br",它應該顯示/usr/bin/firefox

這是我在評論中進一步寫的一個快速腳本,在別名的簡單情況下將起作用。但是,對於任何帶有參數/等的東西,它都會失敗。

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"

您將不得不(具有諷刺意味!)別名來獲取它,因為生成子外殼可能會刪除您的本地別名。

引用自:https://unix.stackexchange.com/questions/217985