2011-06-27 9 views
1

私は最後の質問でこのような成功を収めました。下のbashループは、ファイルを繰り返し処理し、ファイルの最後まで実行されるまで繰り返しantにメッセージを送信するように設定されています。私がantを実行しているコマンドを変更してコマンドを単にエコーしても、それは正常に動作します。コマンドの前後にある "echo"と引用符を削除すると、スクリプトを一度実行して正常にループを終了します。私には明らかなように、これはantと、おそらく終了ステータスと関係がありますが、復帰の代わりにループを終了させる理由はわかりません。ところで、常にゼロが返されます。 私のループでantを実行すると、1回のパスの後にループが終了する

echo "Looping through database results and sending to ant..." 
# This while loop runs through pendingtxs.result and funnels them to ant 
while IFS=, read txid courseid instructorid 
do 
    echo "Beginning substitution of $1 into file..." 
    sed -e "s/XXXXXXXXXX/$txid/" -e "s/YYYYYYYYYY/$courseid/" -e "s/ZZZZZZZZZZ/$instructorid/" createcourse_notif.template.xml >temp.xml 
    echo "Substitution complete." 
    echo "Sending the temp.xml to ant..." 
    /xncpkgs/ant/bin/ant sendMessage -Dsend.destination=SmsQueue -Dmessage.file=temp.xml 
    antReturnCode=$? 
    echo "ANT: Return code is: \""$antReturnCode"\"" 
    echo "Ant is done" 
    echo "Adding the xml to log.txt for later analysis" 
    cat temp.xml >> log.txt 
    echo "Removing temp.xml" 
    rm temp.xml 
    echo "Submission of $txid complete." 

done < pendingtxs.result 

乾杯

ステファノ

答えて

6

アリは、おそらく標準入力を消費しています。試してみてくださいant … < /dev/null

+0

うわー。それはそれだった。私は決してすぐに解決策を得ることはできませんでした!ありがとう! – Stefano

+1

LOL私は答えを受け入れるのに12分待たなければならなかった。あなたのソリューションは速すぎました。それはあなたのすべてのあなたのせいだ;-) – Stefano

+0

うわー、あなたの答えは私が待っていた問題を解決する助けになりました。 –

関連する問題