gpt4 book ai didi

Bash Script 调用另一个 bash 脚本并等待它完成后再继续

转载 作者:行者123 更新时间:2023-11-29 08:43:33 25 4
gpt4 key购买 nike

我有一个运行另一个 bash 脚本的 bash 脚本,但是第一个 bashscript 在继续之前没有等待第二个 bash 脚本完成,我如何强制它等待?

例如:

#!/bin/bash
# first.sh

#call to secondary script
sh second.sh
echo "second.sh has completed"

echo "continuing with the rest of first.sh..."

现在的方式,它将运行 second.sh,然后继续,而不等待 second.sh 完成。

最佳答案

因为我在几个脚本中使用了这样的方案 - 只需使用 source 在同一个 shell 副本中调用第二个脚本。

script-1 中:

source script2.sh

或:

. script2.sh

因此 - 在 script2.sh 结束所有任务之前,script-1 中的任何命令都不会继续执行。

小例子。

第一个脚本:

$ cat script-1.sh
#!/bin/bash
echo "I'm sccript $0."
echo "Runnig script-2..."

source script-2.sh

echo "script-2.sh finished!"

第二个脚本:

$ cat script-2.sh
#bin/bash
echo "I'm script-2. Running wait operation..."
sleep 2
echo "I'm ended my task."

工作原理:

$ ./script-1.sh
I'm sccript ./script-1.sh.
Runnig script-2...
I'm script-2. Running wait operation...
I'm ended my task.
script-2.sh finished!

关于Bash Script 调用另一个 bash 脚本并等待它完成后再继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2270081/

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