gpt4 book ai didi

linux - 并行脚本中的 Bash 重定向

转载 作者:太空宇宙 更新时间:2023-11-04 10:24:34 24 4
gpt4 key购买 nike

我有一个 bash 脚本,其中包含我想并行运行的进程循环:

for i in {1..5}
do
echo Running for simulation $i
python script.py $i > ./outlogs/$i.log 2>&1 &
done

但是当我这样做时,文件重定向不起作用,所以 $i.log 只是保持为空。重定向仅在我最后不使用 & 时有效,但随后脚本会等待每个进程完成,然后再开始下一个进程,这是我不想要的。

我尝试了一个使用 script -c 的解决方案,但这不会实时更新,只有在进程结束时才会更新。有没有人有更好的建议,文件重定向在这个脚本中起作用但它仍然实时更新?

最佳答案

您只需添加 -u 选项,它看起来像这样:

python -u script.py $i > ./outlogs/$i.log 2>&1 &

选项 -u 用于无缓冲的二进制 stdout 和 stderr

关于linux - 并行脚本中的 Bash 重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42225164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com