このスクリプトが「プログラムがループを終了しています」行でループを終了する原因は何ですか?コンテキストでは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")
てループの外側に配置すると、コマンドが正常に機能し、ループが期待どおりに実行されます。ループでこのコマンドを使用するのに問題がありますか?