shell 下有没有办法解决人追加命令的需求 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
theoda
V2EX    Z shell

shell 下有没有办法解决人追加命令的需求

  •  
  •   theoda 2020-07-13 21:33:15 +08:00 3768 次点击
    这是一个创建于 1963 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想法来自下面这个类似场景:

    本来可以很朴素的 命令 A ; 命令 B 分号隔开一下就好,但奈何某些情况

    命令 A 按下回车后,不料等了很久很久还没完成,这才想起命令 B

    然后就两难了:

    1. 中断 A,就浪费了等 A 的时间
    2. 在 A 的一坨输出里强行打进 B 命令+回车,可能会扰乱输入流,影响输出排版

    所以想知道有没有类似队列或者其他办法,能解决上面这种追加命令的需求/p>

    现有环境是 macOS+Terminal+zsh

    3 条回复    2021-07-03 11:28:54 +08:00
    theoda
        1
    theoda  
    OP
       2020-07-13 21:57:32 +08:00
    还是自己找到了一个古老的解决方案:[Task Spooler - batch is back!]( https://vicerveza.homeunix.net/~viric/soft/ts/)

    ```sh
    brew install task-spooler
    ```

    测试了一下 Catalina 还能用,供 v 友参考了
    aloxaf
        2
    aloxaf  
       2020-07-29 18:24:44 +08:00
    1. 用 tmux,然后就可以再开一个 panel 执行
    2. C-z 挂起,完事儿了再 fg 恢复
    theoda
        3
    theoda  
    OP
       2021-07-03 11:28:54 +08:00
    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 &
    ```

    只是需要第一次敲命令必须记得 &
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3555 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 04:16 PVG 12:16 LAX 20:16 JFK 23:16
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86