我想在 bash 中執行多個命令,但其中一些命令在後台執行。解釋這一點的最好方法是使用以下命令,該命令不起作用...
for@barpc:~> (sleep 30;command1;command2 param ) & ; anotherCommand
我想這可以被視為兩個問題:
- 如何終止命令中的&?
- 解決這個問題更好的方法是什麼?
其他重要的細節:
- Opensuse 13.2
- gnome shell
答案1
你應該試試
(sleep 5; ls) & echo "Now"
這將如您所願。
答案2
您所需要做的就是刪除;
.&
其本身充當命令分隔符,因此;
在其後添加無效。
(sleep 30; command1; command2 param ) & anotherCommand
(分號後面的空格不是必需的,我只是發現這樣更容易閱讀。這是shell 語法中空格是可選的少數幾個地方之一- 大多數地方,它們要么是必需的,要么是禁止的。 )
至於更好的方法......這實際上取決於您想要做什麼。我們需要更多資訊才能提出更好的建議。