我的thing
可能有也可能没有可执行文件$PATH
。
如何在ZSH脚本中整齐地检查这个?
我只是运行命令,发送输出和错误或noman的土地,然后检查结果代码。
thing > /dev/null 2>&1
thing_installed=$?
if [ $thing_installed -eq 0 ]; then
echo 'Thing Installed!'
fi
我觉得这可以做得更整齐(一个班轮?)。
答案 0 :(得分:5)
在zsh中,which
行为合理,所以你可以简单地执行
if which thing > /dev/null 2>&1; then
echo installed
fi
或
which thing > dev/null 2>&1 && echo installed
请注意,哪个是内置shell,并且它在所有shell中的行为不合理,因此无法依赖此行为。
答案 1 :(得分:1)
对于zsh whence
是您正在寻找的工具。使用参数-p
,可以强制它仅查看$PATH
并忽略具有相同名称的函数,内置函数和别名。
这将返回thing
的路径或错误消息:
whence -cp thing
答案 2 :(得分:0)
使用which thing
并检查结果代码
答案 3 :(得分:-4)
您可以通过此表达检查文件是否存在:
[ -e thing ] && echo 'Thing Installed!'
-e
运算符检查文件是否存在。如果您想进行其他文件测试,请查看此页面:http://tldp.org/LDP/abs/html/fto.html。
希望这有用; - )