Linux
Unix分隔多個命令,最後有’&’(在後台執行)
在 Unix 中分隔正常命令是將分號放在末尾,如下所示:
cd /path/to/file;./someExecutable;
但它似乎不適用於這樣的命令:
./myProgram1 > /dev/null & ./myProgram2 > /dev/null & =>./myProgram1 > /dev/null &;./myProgram2 > /dev/null &;
有什麼方法可以區分這些命令嗎?
另外,如果我將粘貼複製到命令提示符,如果以下兩種情況是等效的?謝謝。
cd /path/to/file;./someExecutable; cd /path/to/file; ./someExecutable;
那麼“;” 使 shell 等待命令完成,然後繼續執行下一個命令。
“&”會將任何程序直接發送到後台並繼續執行下一個命令 - 無論第一個命令是否已完成或仍在執行。
所以 ”&;” 不會像你期望的那樣工作。
但實際上我不確定你的期望。
在你的 shell 中試試這個:
sleep 2 && echo 1 & echo 2 & sleep 3 && echo 3
它將輸出:2 1 3
現在比較一下
sleep 2 ; echo 1 & echo 2 & sleep 3 ; echo 3
這將輸出 1 2 3
問候。