当我查看bash脚本代码时,我有时会看到|
并且有时会看到||
,但我不知道哪个更好.
我正在尝试做类似的事情......
set -e; ret=0 && { which ansible || ret=$?; } if [[ ${ret} -ne 0 ]]; then # install ansible here fi
请告知在此方案中首选哪个OR运算符.
|
根本不是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
会正确地检测它是否可用.