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

답변2

C에서는 사용할 수 있지만 gotoBash에서는 없습니다.goto그러나 비슷한 언어 구조라도유해한 것으로 간주.

그러니 다른 것을 사용하세요 if.

관련 정보