gpt4 book ai didi

bash - 如何等待文件完成写入 shell 脚本?

转载 作者:行者123 更新时间:2023-12-04 12:51:32 26 4
gpt4 key购买 nike

我有一个名为 parent.sh 的 shell 脚本它做了一些事情,然后关闭并调用另一个 shell 脚本 child.sh它进行一些处理并将一些输出写入文件 output.txt .

我要 parent.sh脚本仅在此之后继续处理 output.txt文件已写入。我如何知道文件已完成写入?

编辑:添加问题的答案:
child.sh 是否在退出之前完成写入文件?是的

parent.sh 是在前台还是后台运行 child.sh?我不确定 - 它是从 withing parent.sh 调用的像这样:./child.sh "$param1" "$param2"

最佳答案

您需要 wait命令。 wait将等到所有子进程完成后再继续。

父.sh:

#!/bin/bash

rm output.txt

./child.sh &

# Wait for the child script to finish
#
wait

echo "output.txt:"
cat output.txt

child .sh:
#!/bin/bash
for x in $(seq 10); do
echo $x >&2
echo $x
sleep 1
done > output.txt

这是 ./parent.sh 的输出:
[sri@localhost ~]$ ./parent.sh 
1
2
3
4
5
6
7
8
9
10
output.txt:
1
2
3
4
5
6
7
8
9
10

关于bash - 如何等待文件完成写入 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26963618/

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