我试图在shell脚本中理解这段代码但是我无法理解这里的逻辑。任何人都可以帮助我理解这背后的逻辑..
(( 0 && 1 )) **# Logical AND** echo $? # 1 ***
# And so ... let "num = (( 0 && 1 ))" echo $num # 0
# But ... let "num = (( 0 && 1 ))" echo $? # 1 ***
(( 200 || 11 )) **# Logical OR**
echo $? # 0 ***
# ...
let "num = (( 200 || 11 ))"
echo $num # 1
let "num = (( 200 || 11 ))"
echo $? # 0 ***
问题:
答案 0 :(得分:0)
(( 0 && 1 ))
返回1
的状态,因为任何0 && $any_number
操作始终为零,这将使((...))
的状态为1
。< / p>
但是,当您使用以下命令将(( 0 && 1 ))
的值分配给另一个shell变量时
let "num = (( 0 && 1 ))"
然后退出状态将为0
,因为分配成功并且命令被视为成功。