gpt4 book ai didi

linux - 在 Linux shell 上的另一个函数内终止函数

转载 作者:太空狗 更新时间:2023-10-29 11:43:12 28 4
gpt4 key购买 nike

我真的是 shell 脚本的新手,我正在尝试弄清楚如何终止在另一个函数中使用无限循环的函数。代码大致如下所示:

finish=1

function1() {
function2&
...
finish=0
}
function2() {
while [ $finish==1 ]
do
...
done
}

而脚本的主体部分只调用了function1。当 function1 完成时,还有其他方法可以终止 function2 吗?我也试过通过 id 杀死它,但无法让它工作。

最佳答案

bash 中的函数调用将在子 shell 中执行。您可以存储该子 shell 的 pid 并在 function1 退出之前将其终止。像这样:

function1() {
function2&
pid=$!

...

kill "$pid"
}

function2() {
while true
do
...
done
}

关于linux - 在 Linux shell 上的另一个函数内终止函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33597244/

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