Bash
獲取任何命令的執行檔
我想知道對於 bash 中的任何命令執行哪個執行檔。
例子:
- 我在這里安裝了firefox
/usr/bin/firefox
,它在$PATH
alias browser=firefox
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"
您將不得不(具有諷刺意味!)別名來獲取它,因為生成子外殼可能會刪除您的本地別名。