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

时间:2015-10-12 05:15:25

标签: bash shell

在测试是否存在命令时,

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

[ "$(command -v foo)" ]

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

[ "" ]

省略-n

是不好的做法

1 个答案:

答案 0 :(得分:3)

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

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