我想知道 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"
您将必须(具有讽刺意味的是!)别名来获取此内容,因为生成子 shell 可能会删除您的本地别名。