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