Bash循环意外地结束循环,但没有说明原因

Bash循环意外地结束循环,但没有说明原因,bash,grails,loops,break,Bash,Grails,Loops,Break,我有一个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/te

我有一个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
grails test-app $1
mv results backup/$1
Person
Book
在测试web任务和测试单元任务中,我对grails进行了一些调用,以运行一些测试,然后进行一些打包工作。 大概是这样的:

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
grails test-app $1
mv results backup/$1
Person
Book
在文件scripts/sh/testunitlist和scripts/sh/testlist中,我有一个要运行的测试列表。 大概是这样的:

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
grails test-app $1
mv results backup/$1
Person
Book
第一个循环在不运行文件scripts/sh/test list的所有行的情况下中断,然后开始运行第二个循环

正如你所看到的,我在sh中添加了-vx,以了解可能存在的问题。但我找不到我做错了什么

我想脚本/sh/test列表中可能有什么东西崩溃了,打破了循环。如果是这种情况,我想知道是什么在崩溃,我想让循环不间断地继续运行

你能给我一些指针吗?

sh-vx脚本/sh/test-web-task.sh“$fn”sh -vx scripts/sh/test-web-task.sh "$fn" < /dev/null

第二个脚本可能正在窃取原始脚本的stdout和stdin。让我知道这是否修复了它

您是否检查了sort-r scripts/sh/test list的输出是否正确?也许你可以用echo替换sh-vx scripts/sh/test-web-task.sh,看看你的输出是否与sort-r scripts/sh/test-list相同。很抱歉没有告诉你,我已经做了那个测试。用echo很好,对不起,我不明白。您是否建议将sh-vx scripts/sh/test-web-task.sh“$fn”替换为sh-vx scripts/sh/test-web-task.sh“$fn”