选择打开终端选项卡以从 bash 脚本运行命令

Select open terminal tabs to run command from bash script

提问人:Anonymous 提问时间:10/20/2023 最后编辑:tripleeeAnonymous 更新时间:10/21/2023 访问量:44

问:

我正在尝试在 linux 中编写一个 bash 脚本,该脚本打开两个终端选项卡,然后等待用户在运行命令之前与屏幕交互。据我所知,我只能在打开新选项卡后运行命令,而不能在打开选项卡后运行命令。这是我的示例脚本:

#!/bin/bash
mate-terminal --tab --title "left"
mate-terminal --tab --title "right"
read -p "Press enter to say hello"
mate-terminal --tab --title "left" -e "echo hello from left"
mate-terminal --tab --title "right" -e "echo hello from right"

我希望能够从已经打开的选项卡运行这些命令,但在打开另外两个选项卡后运行这些命令。这可能吗?如果有一个允许此用例的 shell,我也不必使用。readmate-terminal

Linux Bash 终端

评论

2赞 Charles Duffy 10/20/2023
您当然可以使用 或 GNU 来处理特定的终端。tmuxscreen
1赞 Charles Duffy 10/21/2023
也就是说,我不明白为什么你在这里需要任何特殊的终端支持。“在运行命令之前等待用户与屏幕交互” -- 为什么不能运行一个执行此操作的程序,并在终端启动时指定该程序?如果你的意思是在旧/原始终端中进行交互的地方——好吧,你是编写代码的人,你可以让进程通过 FIFO、命名管道、消息队列或其他任何你想要的东西进行通信。
1赞 Charles Duffy 10/21/2023
(需要明确的是,有一个合理的技术原因,为什么普通终端有机制来指定在创建窗口或选项卡时运行的子进程,而不是以后运行:启动时间是它们启动子进程的时候;除此之外,它被认为是管理自己的责任 - 终端的工作是将子进程的输出中继给用户, 将用户的输入传递给孩子,否则就不要碍事;你不能在这两种情况之间实现相同的接口,因为只有在启动时你才会做一个 fork+exec——后来你只是中继输入)
0赞 shellter 10/21/2023
请确认这不是班级作业。如果是,则不清楚学习目标是什么。如果你只是在尝试,那很好,所以,无论哪种方式,祝你好运!
0赞 Anonymous 10/21/2023
这不是课堂上的作业。

答: 暂无答案