如何交互式多进程执行 shell 脚本中的所有命令?

164 天前
 Humorize

有个 shell 脚本,每行都是一条可以被独立执行的命令,各命令被执行的顺序无所谓,每条命令只能被执行一次,设定同时最多执行的命令数量,希望能多进程交互式执行所有这些命令

至于为什么要交互式,因为这些命令有可能需要接收用户的输入,而且用户希望看到命令的标准输出和标准错误,有的标准输出还包括在一行内不断刷新的进度条

目前知道 screen 能新建多个窗口,且可以用 screen 命令将需要执行的命令发送给已有的 screen 会话的窗口,然后交互式地执行。但是怎么及时知道发送过去的那条命令是否执行完了,以及它的返回值呢?

请问大家有什么好的办法吗?不局限于用 screen

1460 次点击
所在节点    程序员
3 条回复
ETiV
164 天前
使用 mkfifo ,配合管道,把命令在哪个 pane 执行、exit code 在执行完的时候丢进去?
busier
164 天前
没什么特殊方法

Linux 命令脚本调用默认就是 shell wait 方式调用,返回就是执行完了。

执行完 未发生错误都是 return 0 给调用方的,否则 return 错误码。
julyclyde
163 天前
“各命令被执行的顺序无所谓”
这就不是个脚本

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1122098

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX