Sac*_*hin 0 command-line bash command
我想检查给定的命令是否存在bash,我只关心 bash 的本机命令而不是用户编写的脚本。当我提到native commands我的意思是所有那些通常对用户可用的命令。
有两个命令
command -v
type
Run Code Online (Sandbox Code Playgroud)
可用于检查命令是否存在。但它也会为用户编写的脚本返回 true,而我想将自己限制在内置命令中。
注意:我不只是试图区分 abash builtin和其他命令,因为
输入 -t 触摸
给出file作为类型,但默认情况下这是用户可用的命令。但是,如果用户编写脚本然后尝试运行它,那么我想对其进行过滤。
任何帮助表示赞赏。
Arc*_*ege 10
不确定是否只为内置的 shell 返回 true,但type -t会返回“命令”的类型,包括“内置”:
if [ "$(type -t help)" = "builtin" ]; then
echo "Help is a builtin command."
fi
Run Code Online (Sandbox Code Playgroud)
运行help type以获取更多信息。
| 归档时间: |
|
| 查看次数: |
8228 次 |
| 最近记录: |