我正在修改脚本,不知道如何在if语句中写入多个条件。我想用AND来连接这两个条件。
if [ envoi1 -eq 2 ];then
if [ envoi2 -eq 0 ];then
echo 'Ahora mismo.'
envoi = 1
fi
else
if [ envoi2 -eq 1 ];then
if [ envoi1 -eq 1 ];then
echo 'Situacion Normal.'
envoi = 1
fi
else
echo 'Raruno'
envoi=`expr $envoi1 + envoi2`
fi
fi
现在我使用嵌套if来做同样但代码对我来说不太清楚。
答案 0 :(得分:2)
试试这个:
if [ $envoi1 -eq 2 ] && [ $envoi2 -eq 0 ] ; then
envoi = 1
fi
答案 1 :(得分:1)
在bash
中,您可以按如下方式使用[[
:
if [[ $envoi2 -eq 1 && $envoi1 -eq 1 ]]; then
echo "Situacion Normal."
envoi=1
fi
但是,[[
不是POSIX,如果您使用的是/bin/sh
shell,则无效。因此,如果需要便携性,请使用:
if [ $envoi2 -eq 1 -a $envoi1 -eq 1 ]; then
echo "Situacion Normal."
envoi=1
fi
另请注意,在分配变量时,=
的任何一侧都不应有空格。