测试命令是否存在时,
[ -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/