在测试是否存在命令时,
[ -n "$(command -v foo)" ]
和
[ "$(command -v foo)" ]
似乎功能相同,但我见过的大多数示例都明确包括-n
测试。我假设如果命令不存在,那相当于:
[ "" ]
省略-n
答案 0 :(得分:3)
无论是否使用-n
,您都在测试command
内置的输出。我会测试它的返回值:
if command -v "$cmd" >/dev/null 2>&1 ; then
echo "command $cmd exists"
fi