Shell: if と for ループを同時に中断します。

Shell: if と for ループを同時に中断します。

Shell:ifとforループの両方を停止します。

私のスクリプト:名前解決コードのip

IP=192.168.27.191
hostNameChecker()
{
    if [ `getent hosts $1 | wc -l` -ne 0 ];then
        HOST_NAME=`hostname`
        DNS_IP=`getent hosts $1 | cut -d " " -f 1 | sed 's/^[ \t]*//;s/[ \t]*$//'`
        DNS_NAMES=`getent hosts $1 | cut -d " " -f 2- | sed 's/^[ \t]*//;s/[ \t]*$//'`
        for DNS_NAME in ${DNS_NAMES[@]} 
        do
            if [[ "$DNS_NAME" == "$HOST_NAME" ]];then
                    echo "Host name:$HOST_NAME and DNS_NAME:$DNS_NAME matched"
                    break 2;########Not working. only brakes inner for not outer if 
                else
                    continue;
                fi
        done
            echo "ERROR: Mismatch between DNS:$DNS_NAMES and Hostname:$HOST_NAME"
            exit 0  
    fi
}
hostNameChecker $IP

上記のスクリプトでは休憩2ifは外部ではなく内部のみを破壊します。問題を解決するために別のifを追加することができますが、他の可能な方法はありますか? ? ?

ベストアンサー1

breakif文には影響しません。ユースケースでは、return外部機能と終了機能の後にステートメントがないため、目的の効果を得ることができます。ifreturn

おすすめ記事