我有一个包含如下代码的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
第一个循环中断而没有运行文件脚本/ sh / test-list的所有行,然后它开始运行第二个循环。
正如您所看到的,我已将-vx添加到sh以查看可能存在的问题。但是我找不到我做错的事。
我认为脚本/ sh / test-list中的某些内容可能会崩溃并打破循环。如果是这种情况,我想知道什么是崩溃,我希望循环继续不间断。
你能给我任何指针吗?答案 0 :(得分:0)
sh -vx scripts/sh/test-web-task.sh "$fn" < /dev/null
第二个脚本可能是窃取了原始脚本的stdout和stdin。如果这样可以解决它,请告诉我