想法来自下面这个类似场景:
本来可以很朴素的 命令 A ; 命令 B
分号隔开一下就好,但奈何某些情况
命令 A 按下回车后,不料等了很久很久还没完成,这才想起命令 B
然后就两难了:
所以想知道有没有类似队列或者其他办法,能解决上面这种追加命令的需求
现有环境是 macOS+Terminal+zsh
1
theoda OP 还是自己找到了一个古老的解决方案:[Task Spooler - batch is back!]( https://vicerveza.homeunix.net/~viric/soft/ts/)
```sh brew install task-spooler ``` 测试了一下 Catalina 还能用,供 v 友参考了 |
2
aloxaf 2020-07-29 18:24:44 +08:00
1. 用 tmux,然后就可以再开一个 panel 执行
2. C-z 挂起,完事儿了再 fg 恢复 |
3
theoda OP aloxaf 友友,是我描述不清楚。描述中 A; B 应该是 A && B,即完成了 A 才能继续 B 。实际情况类似:
```sh scp [email protected]:~/foo.zip . # A: 下载 foo.zip unzip foo.zip && cp -a foo /mnt/flash/. # B: 解压、拷贝到 U 盘 ``` 如果 C-C 后重新敲命令改成 A && B,就白白浪费了 scp 的下载时间; 如果想等 scp 下载完再敲第 2 句,人回来得不及时,就得晚点拿到 U 盘。 我想把整个流程比喻成 bullet mode,子弹发射出去,我可以随时继续发射,而非命中目标后才发射第二颗子弹。 之所以回来回复,是因为我突然想到了一个勉强的解决方案: ```sh A & wait && B & # 随时追加 wait && C & ``` 只是需要第一次敲命令必须记得 & |