我正在浏览这样的大量数据:
for id in `cat ids.list` ; do echo $id ; bin/migrate.pl --id $id ; done
我遇到一个问题,在几百美元之后,migrate.pl脚本因我的后端发生超时错误而死亡(虽然我不确定我是否相信错误消息)。
但是当migrate.pl脚本死掉时,整个bash for-loop也会停止。我希望bash继续使用下一个$ id的migrate.pl。如何为for循环杀死脚本?我觉得这很令人惊讶,而且我无法用任何其他机制重现它,我想知道它是否与我的问题有关。
答案 0 :(得分:1)
这会尝试缓冲输出cat ids.list
,并且可能会导致大文件溢出。你应该做一些像
while read -r line; do
for id in $line; do
echo "$id"
bin/migrate.pl --id "$id"
done
done < ids.list