我的最后一个问题非常成功,我决定再试一次。下面的bash循环被设置为遍历一个文件,并一次又一次地向ant发送消息,直到它运行到文件的末尾。当我将运行ant的命令更改为简单地回显该命令(用于测试)时,它运行得很好。当我删除"echo"和命令周围的引号时,它只运行一次脚本并优雅地退出循环。在我看来,这显然与蚂蚁有关,也许与蚂蚁的退出状态有关,但我不明白为什么这会使它退出循环而不是返回。顺便说一下,它总是返回零。
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
干杯,
Stefano
ant可能正在使用stdin。尝试运行ant … < /dev/null