让我们说我想让命令type idonotexist
沉默。通常,它会输出如下消息:
bash: type: idonotexist: not found
如何使这样的命令以可移植的方式保持沉默(即以适合像Bash和zsh这样的常见shell的方式)。
有关如何使用它的示例,请考虑在脚本中使用的命令,该命令应仅显示echo显示:
if type "idonotexist"; then
echo "hello world"
else
echo "install idonotexist"
fi
答案 0 :(得分:2)
来自help type
我们知道
Exit Status:
Returns success if all of the NAMEs are found; fails if any are not found.
因此,您可以将所有输出重定向到/dev/null
- &gt; type <whatever> &>/dev/null
并依赖退出状态。
所有在一起:
if type "idonotexist" &>/dev/null; then
echo "hello world"
else
echo "install idonotexist"
fi
答案 1 :(得分:0)
Bash(显然也是Zsh?)有一个命令未找到的处理程序,但我不认为这可以移植到其他shell;在POSIX意义上肯定不便携。
用于例如Ubuntu建议在键入当前不可用的命令时安装缺少的包,但是由您可以安装的包提供。