매우 간단한 bash 루프로 어려움을 겪고 있습니다.

매우 간단한 bash 루프로 어려움을 겪고 있습니다.

호스트 목록에 대해 다양한 작업을 수행하는 스크립트가 있습니다. 그러나 루프 중 하나는 파일의 첫 번째 항목에만 작업을 적용하는데 그 이유를 이해할 수 없습니다.

    # this loop shows multiple entries in the file...
    while read -r target_host ; do
        echo "%% read $target_host"
    done <"${PHASE_TWO_FILE}"

    # this loop only goes around once then exits....
    while read -r target_host ; do
        cmd="ssh [email protected] 'applyrrdupg.sh ${target_host}'"
        echo "DEBUG: Running $cmd"
        $cmd >>"$ERRORS_FILE"
        RC=$?
        if [ 0 -eq "$RC" ]; then
            echo "SUCCESS: convert ${target_host}"
            echo "$target_host" >>"${PHASE_THREE_FILE}"
            echo -e "HOST: $target_host\nSUCCESS\n--" >>"$ERRORS_FILE"
        else
            echo "ERROR: rrd conversion failed for $target_host"
            REVIEW_ERRORS=1
            echo -e "HOST: $target_host\nERROR: Conversion failed\nDETAILS: see above\n--" >>"$ERRORS_FILE"
        fi
    done <"${PHASE_TWO_FILE}"
    echo "%% loop exited"

    # and just to make sure - lets check again....
    while read -r target_host ; do
        echo "%% read $target_host"
    done <"${PHASE_TWO_FILE}"

그러면 다음과 같은 출력이 생성됩니다.

%% read centos5.southwold.net
%% read centos7.southwold.net
%% read cmk-satellite.southwold.net
DEBUG: Running ssh [email protected] 'applyrrdupg.sh centos5.southwold.net'
SUCCESS: convert centos5.southwold.net
%% loop exited
%% read centos5.southwold.net
%% read centos7.southwold.net
%% read cmk-satellite.southwold.net

내가 무엇을 놓치고 있나요?

관련 정보