我创建一个脚本,将数据粘贴到其中,保存、执行和删除:
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) &