Запуск муравья в моем цикле приводит к выходу цикла через один проход - PullRequest
1 голос
/ 27 июня 2011

У меня был такой успех с моим последним вопросом, я решил попробовать еще раз. Цикл 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

1 Ответ

6 голосов
/ 27 июня 2011

муравей, вероятно, потребляет стандартный ввод. Попробуйте запустить ant … < /dev/null

...