测试unix中是否存在可执行文件

Pet*_*ton 2 unix shell zsh

问题

我可能有也可能没有thing我的可执行文件$PATH.

如何在ZSH脚本中整齐地检查这个?

现有的尝试

我只是运行命令,发送输出和错误或noman的土地,然后检查结果代码.

thing > /dev/null 2>&1
thing_installed=$?
if [ $thing_installed -eq 0 ]; then
    echo 'Thing Installed!'
fi
Run Code Online (Sandbox Code Playgroud)

我觉得这可以做得更整齐(一个班轮?).

Wil*_*ell 5

在zsh中,which行为合理,所以你可以简单地做

if which thing > /dev/null 2>&1; then
    echo installed
fi
Run Code Online (Sandbox Code Playgroud)

要么

which thing > dev/null 2>&1 && echo installed
Run Code Online (Sandbox Code Playgroud)

请注意,这是一个shell内置的,其行为是不是合理的所有炮弹,所以这种行为不能被依赖.