【发布时间】:2010-10-08 13:46:53
【问题描述】:
我有一个 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 以查看可能出现的问题。但我找不到我做错了什么。
我认为可能是 scripts/sh/test-list 中的某些内容崩溃了,并打破了循环。如果是这种情况,我想知道发生了什么崩溃,并且我希望循环继续运行而不会中断。
你能给我指点吗?
【问题讨论】:
-
你检查过 sort -r scripts/sh/test-list 的输出是?也许您可以将 sh -vx scripts/sh/test-web-task.sh 替换为 echo 并查看您的输出是否与 sort -r scripts/sh/test-list 相同。
-
对不起,我已经做了那个测试。使用 echo 可以正常工作。