当前位置:  开发笔记 > 编程语言 > 正文

使用OR运算符的bash - 管道v双管道

如何解决《使用OR运算符的bash-管道v双管道》经验,为你挑选了1个好方法。

当我查看bash脚本代码时,我有时会看到|并且有时会看到||,但我不知道哪个更好.

我正在尝试做类似的事情......

set -e;

ret=0 && { which ansible || ret=$?; }

if [[ ${ret} -ne 0 ]]; then
    # install ansible here
fi

请告知在此方案中首选哪个OR运算符.



1> Charles Duff..:

|根本不是OR运算符.但是你可以使用||:

which ansible || {
  true # put your code to install ansible here
}

这相当于if:

if ! which ansible; then
  true # put your code to install ansible here
fi

顺便说一下 - 考虑养成使用type(内置shell)而不是which(外部命令)的习惯.type是更快,更好地理解shell行为:如果你有一个ansible命令,比如,一个调用真实命令的shell函数,which它将不知道它在那里,但type会正确地检测它是否可用.


维护不足,充满了不良做法.
@ l'L'l,那说,`||`确实是一个OR运算符,我的回答中没有任何其他说明; 这是```不是.
... re:官方手册,请访问https://www.gnu.org/software/bash/manual/
推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有