2013-12-22 94 views
0

我有多個命令。我想一步到位地在Linux上運行所有這些命令而不中斷(等到第一個命令的輸出完成後再運行第二個命令等)。如果有任何方法可以做到這一點?? ..我擁有全部要在文本文件中運行的命令。linux上運行命令不中斷

回答

0

嘗試:

command1 ; command2 ; command3 

如果你想管從命令1的輸出命令2最後運行指令代碼:

command1 | command2 ; command3 

分號方法將不考慮是否先前的命令那是成功的。如果你想停止Command上的失敗執行,你可以使用:

command1 && command2 ; command3 
+0

我試過command1; command2它的工作,但它只顯示輸出和第一個逗號,並不打印其他命令的命令..我需要每個命令與其輸出 – user2792748

0

如果你想用一個命令行來做到這一點,你可以用分號連接命令:

command1 ; command2 ; command3 

如果您希望以後的命令來運行只有在早期的成功,他們以「& &」連接:

command1 && command2 && command3 
+0

我試過command1; command2它正在工作,但它只顯示輸出和第一個逗號,並不打印其他命令的命令..我需要每個命令及其輸出 – user2792748

+0

輸出是什麼意思?當我輸入'pwd; ls'我得到這兩個命令的輸出。 – Jack

+0

例如:如果我運行:command1; command ..輸出是:output1 output2 ..我希望它是:command1 output1 command2 output2 – user2792748

0

如前面提到的答案,你ç使用;&&來終止或分離命令列表中的命令,其中;指示簡單的無條件排序,並且&&僅當前一個成功時才執行以下命令。 (其它命令分隔包括&|||,等人,見款列表在部分SHELL語法附近爲他們的工作細節bash手冊頁的開頭。)

使從命令一個要顯示的列表以及來自這些命令的輸出,您可以使用set -x打開shell的XTRACE選項。稍後,使用set +x將其關閉。 XTRACE顯示命令的格式由PS4參數的內容控制。下面是兩行命令輸入和14行輸出的示例成績單:

$ alias d='date +%N' 
$ d;d; set -x; d;d; echo PS4 is $PS4; d; set +x; d;d;d 
726496303 
729638881 
+ date +%N 
733073117 
+ date +%N 
736249778 
+ echo PS4 is + 
PS4 is + 
+ date +%N 
739730109 
+ set +x 
743027175 
746206908 
749367086