我有一个名为parent.sh
的shell脚本执行某些操作,然后关闭并调用另一个shell脚本child.sh
,它执行一些处理并将一些输出写入文件output.txt
。< / p>
我希望parent.sh
脚本只在写入output.txt
文件之后继续处理。我怎么知道该文件已写完?
编辑:添加问题的答案: child.sh在退出之前是否完成了对文件的写入?是
parent.sh是在前台还是后台运行child.sh?我不确定 - 它是否正在使用这样的parent.sh
进行调用: ./child.sh "$param1" "$param2"
答案 0 :(得分:1)
您需要wait
命令。 wait
将等到所有子流程完成后再继续。
parent.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