bash - -n 命令在 -v 测试中是多余的吗?

标签 bash shell

测试命令是否存在时,

[ -n "$(command -v foo)" ]

[ "$(command -v foo)" ]

似乎在功能上是等效的,但我见过的大多数示例都明确包含 -n 测试。我假设如果命令不存在,则相当于:

[ "" ]

省略-n是不好的做法吗?

最佳答案

无论是否使用-n,您都在测试内置命令的输出。我会测试它的返回值:

if command -v "$cmd" >/dev/null 2>&1 ; then
    echo "command $cmd exists"
fi

关于bash - -n 命令在 -v 测试中是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33073693/

相关文章:

linux - 使用 uniq 比较 2 个字典

bash - 将 stdout 和 stderr 重定向到永久文件,但继续打印它们

shell - 寻找类似于时间的命令,但如果时间超过限制则退出

bash - 如何为systemd服务的进程加载环境变量?

linux - Shell 脚本 - 读取 Server#1 上的内容,在 Server#2 上进行处理

linux - Docker 运行退出 1 httpd

php - 为什么我不应该在 php 中使用 unix 命令?

linux - 使用 grep 从字典中删除词根已经存在的单词

linux - 这个命令是什么意思?

shell - 在 iOS 模拟器中安装应用程序的脚本