如何在后台运行函数?

如何在后台运行函数?

我创建一个脚本,将数据粘贴到其中,保存、执行和删除:

vi ~/ms.sh && chmod +x ~/ms.sh && nohup ~/ms.sh && rm ~/ms.sh

#!/bin/bash

commands...

function myFunc {

commands...
}

myFunc ()

我怎样才能正确地仅myFunc在后台运行,或者在另一个进程中运行?如果有可能的话?

答案1

您几乎可以在任何可以使用程序的地方使用 shell 函数。请记住,shell 函数不存在于创建它们的范围之外。

#!/bin/bash
#
f() {
    sleep 1
    echo "f: Hello from f() with args($*)" >&2
    sleep 1
    echo "f: Goodbye from f()" >&2
}

echo "Running f() in the foreground" >&2
f one

echo "Running f() in the background" >&2
f two &

echo "Just waiting" >&2
wait

echo "All done"
exit 0

答案2

您可以在后台运行它们,就像任何其他以&结尾的 shell 命令或脚本一样。

Bash 和类似的 shell 还允许您将命令与(和结合使用,)例如:

(command1; command2) &

相关内容