前一個指令完成後執行指令

前一個指令完成後執行指令

是否有一個終端模擬器允許使用者在目前運行的命令終止後執行命令?

我正在尋找一個軟體,而不是尋找如何連接命令的解釋(例如透過&&;)。只是我經常想在完成某件事之後再做某事,但不會提前計劃所有事情。一個名為“當前命令完成後執行”的小上下文選單條目會打開一個新的終端窗口,這確實很棒。

答案1

我假設您使用的是 Bash CLI。至少有兩種方法可以做到這一點,具體取決於您想要提前規劃的程度。

如果您鍵入命令 和enter,然後決定在完成後執行其他命令,則可以執行以下操作:

001 $ date; sleep 10
002 Mon, Jan 25, 2016  3:08:35 PM
003 tty; date
004 $ tty; date
005 /dev/pty2
006 Mon, Jan 25, 2016  3:08:45 PM

筆記:

  • 新增行號(“001 ...”)
  • 第 001 行:由於 ,兩個命令按順序運行;,第二個命令長時間運行
  • 第002行:第001行'date'的立即輸出,供參考
  • 第 003 行:當第 001 行的「睡眠」指令仍在運作時,使用者鍵入其他指令,鍵入的內容會回顯,但在「睡眠」完成之前不會被解釋
  • 第 004 行:$出現提示符,標誌著第 001 行第二條指令的執行結束,剩下的是第 003 行的重新回顯。
  • 第 005 行:在第 003 行輸入的「tty」指令的輸出
  • 第 006 行:在第 003 行輸入的「date」指令的輸出,與第 002 行進行比較

但是,如果您事先知道在初始命令之後您想要啟動其他操作,但您還不知道什麼,則可以明確等待它,如下所示:

006 $ date; sleep 20 &
007 Mon, Jan 25, 2016  3:13:52 PM
008 [1] 504840
009 $ wait 504840; tty; date
010 [1]+  Done                    sleep 20
011 /dev/pty2
012 Mon, Jan 25, 2016  3:14:12 PM

筆記:

  • 第006行:'date'供參考,然後'sleep'命令被推到後台並最終&
  • 第007行:第006行'date'的輸出,供參考
  • 第 008 行:&第 006 行的輸出,給出「睡眠」指令的 PID
  • 第 009 行:「wait」將等待具有指定 PID 的進程完成
  • 第 010 行:第 006 行的“sleep”完成,然後是“tty;” date' 將會被解釋
  • 第 011 行:第 009 行「tty」的輸出
  • 第 012 行:第 009 行輸出“日期”,與第 007 行進行比較

答案2

您可以在正在執行目前命令的 shell 視窗中鍵入或貼上新命令,shell 將看到它並在目前命令完成後執行它。

無需額外的菜單項目。

例如:

$ command1
command2
$ $

(列印重複的提示是因為shell在執行完之後在command1啟動之前會提示你command2)。

請注意,如果你command1kill, thencommand2會立即執行,但是如果您Ctrl-C在此 shell 中鍵入,則會中止兩個都命令。

相關內容