如何在 Bash 中執行多個命令,其中一些命令在背景執行

如何在 Bash 中執行多個命令,其中一些命令在背景執行

我想在 bash 中執行多個命令,但其中一些命令在後台執行。解釋這一點的最好方法是使用以下命令,該命令不起作用...

for@barpc:~> (sleep 30;command1;command2 param ) & ; anotherCommand

我想這可以被視為兩個問題:

  1. 如何終止命令中的&?
  2. 解決這個問題更好的方法是什麼?

其他重要的細節:

  • Opensuse 13.2
  • gnome shell

答案1

你應該試試

(sleep 5; ls) &  echo "Now"

這將如您所願。

答案2

您所需要做的就是刪除;.&其本身充當命令分隔符,因此;在其後添加無效。

(sleep 30; command1; command2 param ) & anotherCommand

(分號後面的空格不是必需的,我只是發現這樣更容易閱讀。這是shell 語法中空格是可選的少數幾個地方之一- 大多數地方,它們要么是必需的,要么是禁止的。 )

至於更好的方法......這實際上取決於您想要做什麼。我們需要更多資訊才能提出更好的建議。

相關內容