Function

如何在後台執行函式?

  • October 29, 2019

我創建一個腳本,在其中粘貼數據,保存、執行和刪除:

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

#!/bin/bash

commands...

function myFunc {

commands...
}

myFunc ()

我怎樣才能正確地只myFunc在後台執行,或者在另一個程序中執行?如果有可能?

您幾乎可以在任何可以使用程序的地方使用 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

您可以在後台執行它們,就像在任何其他 shell 命令或腳本中一樣&,最後帶有 a。

Bash 和類似的 shell 還允許您將命令與(和組合,)例如:

(command1; command2) &

引用自:https://unix.stackexchange.com/questions/334425