Цикл Bash неожиданно завершается, не показывая почему - PullRequest
0 голосов
/ 08 октября 2010

У меня есть скрипт bash с кодом, подобным следующему:

echo "EXECUTING TASK 1"
sort -r scripts/sh/test-list | while read fn; do    
    sh -vx scripts/sh/test-web-task.sh "$fn"
done

echo "EXECUTING TASK 2"
sort -r scripts/sh/test-unit-list | while read fn; do   
    sh -vx scripts/sh/test-unit-task.sh "$fn"
done

В test-web-task и test-unit-task у меня есть несколько обращений к grails для запуска некоторых тестов и последующей упаковкивещи.Примерно так:

grails test-app $1
mv results backup/$1

В файлах scripts / sh / test-unit-list и scripts / sh / test-list у меня есть список тестов для запуска.Примерно так:

Person
Book

Первый цикл прерывается без запуска всех строк файла scripts / sh / test-list, а затем начинается второй цикл.

Когда выможно увидеть, что я добавил -vx к sh, чтобы увидеть, в чем может быть проблема.Но я не могу понять, что я делаю неправильно.

Я думаю, что, возможно, что-то в скриптах / sh / test-list дает сбой и прерывает цикл.Если это так, я хочу знать, что происходит сбой, и я хочу, чтобы цикл продолжался без перерыва.

Можете ли вы дать мне какой-нибудь указатель?

1 Ответ

0 голосов
/ 08 октября 2010
sh -vx scripts/sh/test-web-task.sh "$fn" < /dev/null

Второй скрипт, вероятно, крадет stdout и stdin оригинального скрипта.Дайте мне знать, если это исправит

...