私のスクリプトがwhileループを終了する原因

私のスクリプトがwhileループを終了する原因

このスクリプトが「プログラムがループを終了しています」行でループを終了する原因は何ですか?コンテキストでは2回繰り返されますが、私がCM_CHECK_STATUSいる場所にいる場合は繰り返されません。

RUNLOG="log"
OUTPUTFILE="output"

LIST=$(/usr/local/bin/sshpass -f $PASSWORD_FILE  ssh -o StrictHostKeyChecking=no $USER@$IP "ls -al" 2>> $RUNLOG > $OUTPUTFILE)

PS_VALS=$(cat $OUTPUTFILE)

if [[ $? != 0 ]]
then
  echo "There was an error at:" `date` >> $RUNLOG
else
  while IFS= read -r line; 
  do
    # Check ls
    echo "... $line ..."
    CM_CHECK_STATUS=$(/usr/local/bin/sshpass -f $PASSWORD_FILE  ssh -o StrictHostKeyChecking=no $USER@$IP "ls -al")
    #program is exiting loop here
  done <<< "$PS_VALS"
  echo "finished"
fi

これを削除しCM_CHECK_STATUS=$(/usr/local/bin/sshpass -f $PASSWORD_FILE ssh -o StrictHostKeyChecking=no $USER@$IP "ls -al")てループの外側に配置すると、コマンドが正常に機能し、ループが期待どおりに実行されます。ループでこのコマンドを使用するのに問題がありますか?

ベストアンサー1

おすすめ記事