unix - 找出 POSIX 系统上是否存在命令

标签 unix shell posix

我希望能够通过 shell 脚本判断任何 POSIX 系统上是否存在命令。

在 Linux 上,我可以执行以下操作:

if which <command>; then
   ...snip...
fi

但是,Solaris 和 MacOS which当命令不存在时,不要给出退出失败代码,它们只是向 STDOUT 打印一条错误消息。

另外,我最近发现 which命令本身不是 POSIX(见 http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html)

有任何想法吗?

最佳答案

command -v是一个 POSIX 指定的命令,它可以做什么。

定义为在找不到命令或发生错误时返回>0。

关于unix - 找出 POSIX 系统上是否存在命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/762631/

相关文章:

linux - 如何用linux shell备份脚本系统?

c - 应用程序退出后信号量保持打开状态

linux - 输出到脚本目录中的文件

macos - 确定 OSX 中实际安装的卷和远程文件系统

linux - Shell 脚本中的 OR 条件 - Unix

bash - 将 Unix 时间戳转换为日期字符串

ruby - 是否有与 Windows shell 的 Ruby Shellwords 模块等效的模块?

c - 我是否需要为每个 C POSIX 线程使用不同的签名集以确保屏蔽信号时的原子性?

c++ - c/c++中的进程间通信

linux bash 大于 code -gt 给出错误 [: too many arguments