0

我有一个带有如下代码的 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 中的某些内容正在崩溃,并打破了循环。如果是这种情况,我想知道发生了什么崩溃,并且我希望循环继续运行而不会中断。

你能给我任何指点吗?

4

1 回答 1

0
sh -vx scripts/sh/test-web-task.sh "$fn" < /dev/null

第二个脚本可能正在窃取原始脚本的标准输出和标准输入。让我知道这是否可以解决

于 2010-10-08T13:50:12.310 回答