while 루프는 파일의 첫 번째 줄에서만 실행됩니다.

while 루프는 파일의 첫 번째 줄에서만 실행됩니다.

어떤 이유로 내 while루프는 한 번만 실행됩니다. 다른 게시물도 봤는데 잘 모르겠더라구요. 간단한 스크립트여야 하지만 한 번만 실행됩니다. 화면 출력은 +xbash 스크립트에 있습니다.

LICENSE="1010110.license"
PASS="somepassword"
SSHPASS="/usr/bin/sshpass"
SERVERFILE="/home/user/server.txt"

while read SERVER
do
    if sshpass -p $PASS ssh root@$SERVER '[ -d /etc/something/licenses/ ]'
         then
            echo "The directory is present"
            sshpass -p "$PASS" scp $LICENSE "root@$SERVER":/etc/something/licenses/
         else
            echo "$SERVER does not contain the correct folder, trying 2nd option" >> failures.txt
            if sshpass -p $PASS ssh root@$SERVER '[ -d /etc/something/else/licenses/ ]' 
                then
                    sshpass -p "$PASS" scp $LICENSE "root@$SERVER":/etc/something/else/licenses/
                else
                    echo "$SERVER does not contain either directory" >> failures.txt
            fi

    fi

done < "$SERVERFILE"

이것이 출력이다+x

+ read SERVER
+ sshpass -p 'somepassword' ssh root@server1 '[ -d /etc/something/licenses/ ]'
+ echo 'server1 does not contain the correct folder, trying 2nd option'
+ sshpass -p 'somepassword' ssh root@server1 '[ -d /etc/something/else/licenses/ ]'
+ sshpass -p 'somepassword' scp 1010110.license root@server1:/etc/something/else/licenses/
+ read SERVER

다시 읽으려고 시도하는 것처럼 보이지만 SERVER실제로는 읽지 않습니다. 이 server.txt파일은 단지 서버 이름 목록입니다.

관련 정보