あなたにとっては簡単です。 IFステートメントを使用せずにBashでこのようなことを実行できますか?
a=0
b=0
c=1
result= [ a || b || c ] # result of binary operation should be 1
可能ですか?
ベストアンサー1
算術式のビット演算子を使用できます。
result=$((a|b|c))
(&
ANDとXORの場合^
も同様)。
論理演算子は算術式にも使用されます。
result=$((a||b||c))
(同様に&&
)。
割り当ては式自体の一部である可能性があります(=
この場合は周囲のスペースが許可されます)。
(( result = a || b || c ))
true
代わりにandを使用すると、false
括弧はまったく必要ありません。
a=false
b=false
c=true
a || b || c
result=$?
問題は、この場合、0がtrueを意味することです。
角かっこ内では、設定されていない値またはnull値自体のみがfalseです。だから、あなたは使用することができます
a=
b=
c=1
[[ $a || $b || $c ]]
result=$?
繰り返しますが、0はtrueに対応しますが、次のように変更することでこの問題を解決できます。
! [[ $a || $b || $c ]]