1

スクリプトを変更していましたが、ifステートメントに複数の条件を記述する方法がわかりませんでした。2つの条件を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を使用しますが、コードは私にはそれほど明確ではありません。

4

2 に答える 2

2

これを試して:

if [ $envoi1 -eq 2 ] && [ $envoi2 -eq 0 ] ; then
  envoi = 1
fi
于 2013-02-13T08:26:03.183 に答える
1

では、次のようにbash使用できます。[[

if [[ $envoi2 -eq 1 && $envoi1 -eq 1 ]]; then 
    echo "Situacion Normal."
    envoi=1
fi

ただし、はPOSIXではなく、シェル[[を使用している場合は機能しません。/bin/shしたがって、移植性が必要な場合は、次のように使用します。

if [ $envoi2 -eq 1 -a $envoi1 -eq 1 ]; then
    echo "Situacion Normal."
    envoi=1
fi

また、変数を割り当てるときは、の両側にスペースを入れないでください=

于 2013-02-13T08:40:24.673 に答える