我对 shell 脚本非常陌生,我正在尝试找出如何终止在另一个函数内使用无限循环的函数。 代码或多或少看起来像这样:
finish=1
function1() {
function2&
...
finish=0
}
function2() {
while [ $finish==1 ]
do
...
done
}
脚本的主要部分仅调用函数1。当 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/