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

标签 shell unix zsh

问题

我的 $PATH 中可能有也可能没有可执行的 thing

如何在 ZSH 脚本中巧妙地检查这一点?

现有尝试

我只是运行命令,发送输出和错误或 noman's land,然后检查结果代码。

thing > /dev/null 2>&1
thing_installed=$?
if [ $thing_installed -eq 0 ]; then
    echo 'Thing Installed!'
fi

我觉得这可以做得更巧妙(一个衬垫?)。

最佳答案

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

if which thing > /dev/null 2>&1; then
    echo installed
fi

which thing > dev/null 2>&1 && echo installed

请注意,这是一个 shell 内置函数,其行为在所有 shell 中都合理,因此不能依赖此行为。

关于shell - 测试 unix 中是否存在可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21799441/

相关文章:

linux - 在 zsh 中混合进程替换和管道

linux - gdb如何从脚本执行目标程序

shell - docker 容器中的 Alpine linux 忽略 shell 脚本参数

c - 如何在 Unix 中使用信号处理程序?

shell - 如何在使用 - Shell 脚本建立连接的 SFTP 连接中进行 CD

vim - 如何在 Ubuntu 中使用 zsh shell 在 vi​​m 中启用系统粘贴?

python - 关于 python "#!usr/bin/env python"?

bash - CURL 转义单引号

shell - 如何在终端中查看文件夹的属性?

linux - 如何在 Unix 代码中捕获文件名并检查文件名中的日期部分?