是否有一个终端仿真器允许用户在当前运行的命令终止后执行命令?
我正在寻找软件,而不是寻找如何连接命令的说明(例如通过&&
或;
)。只是我经常想在其他事情完成后再做某件事,但又不想提前计划好一切。一个名为“当前命令完成后执行”的小上下文菜单项可以打开一个新的终端窗口,而这个窗口正是这样做的,这真是太棒了。
答案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 行中的“sleep”命令仍在运行时,用户输入了其他命令,输入的内容会被回显,但直到“sleep”完成才会被解释
- 第 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”作为参考,然后使用 final 将“sleep”命令推送到后台&
- 第 007 行:第 006 行的“date”输出,供参考
- 第 008 行:&第 006 行的输出,给出“睡眠”命令的 PID
- 第 009 行:‘wait’将等待名为 PID 的进程完成
- 第 010 行:第 006 行的“sleep”完成,然后将解释“tty; date”
- 第 011 行:第 009 行‘tty’的输出
- 第 012 行:第 009 行的“date”输出,与第 007 行进行比较
答案2
您可以在正在执行当前命令的 shell 窗口中键入或粘贴新命令,shell 将在当前命令完成后看到它并执行它。
无需额外的菜单条目。
例如:
$ command1
command2
$ $
(打印重复的提示是因为 shell 会在command1
启动之前执行完后提示你command2
)。
注意如果你command1
用kill
,然后command2
立即执行,但如果你Ctrl-C在这个 shell 中输入,这将中止两个都命令。