我想检查两个程序是否存在。
if ! [ type gedit ] || ! [ type vim ]; then
echo "Installing programs"
#code
fi
#code needs to run when one of them is missing.
真正的方法是什么?
最佳答案
if ! type gedit vim &>/dev/null; then
echo "Installing programs"
#code
fi
测试命令[
的目的是根据某些条件设置退出状态,例如文件存在或两个字符串相等。这里不需要这样做,因为 type
本身就设置了有用的退出状态。
另请注意,您可以指定多个名称作为 type
的参数。仅当找到所有名称时,它才会返回零退出状态。
&>/dev/null
操作系统的目的是将所有类型的输出(stdout 和 stderr)发送到 /dev/null
。如果您确实想查看其输出,请删除该重定向。
关于如果不是或使用两个命令进行 Bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33458385/