Function
如何在後台執行函式?
我創建一個腳本,在其中粘貼數據,保存、執行和刪除:
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) &