每当我开始数据操作会话时,我都必须手动打开两个终端 - 一个用于工作,另一个运行 gnuplot,以便我可以快速加载绘图程序以查看结果。
两者都在同一目录 /home/pi/python 中打开,其中数据不断自动记录并可供分析。
为了最大限度地减少输入,我创建了一个名为 pj 的脚本,并将其放入 /usr/sbin (在我的 $PATH 中),其中包含
#!/bin/bash
cd /home/pi/python
我通过输入来调用它
. pj (notice the space so when it exits it stays there)
然后我必须单击打开第二个终端窗口,在其中运行包含以下命令的脚本 gp:
#!/bin/bash
cd /home/pi/python
gnuplot
我用这个来调用
gp
注意命令之前没有点,因为我不在乎它最终退出时会发生什么 - 我倾向于让它整天打开。
bash 有没有一种方法可以让一个命令为我完成这两项任务?
问题就在标题中:我可以在单个脚本中打开两个交互式终端窗口吗?
简而言之,我想要一个命令在同一个子目录中打开两个终端窗口,其中一个在交互模式下运行 gnuplot,另一个在 bash 提示符下运行。
答案1
如果您从另一个终端仿真器中的命令行调用终端仿真器,它通常会创建一个新窗口,然后返回到第一个终端仿真器中的命令提示符。基于此,大致如下:
#!/bin/bash
cd python
<whatever-terminal-emulator> --command gnuplot
应该得到你想要的(尽管--command
选项可能如果您使用的是像 xterm 这样非常简单的终端模拟器(对于那些,您通常只需省略该--command
选项),情况会有所不同。
答案2
感谢@Austin 朝着正确的方向推动,这是最终起作用的脚本。
它名为 go 并且位于我的 $PATH 中(Ubuntu 计算机上的 /usr/bin 和 Raspbian 计算机上的 /usr/sbin),因此它可以在任何地方工作:
#!/bin/bash
cd /home/pi/python
gnome-terminal -e gnuplot &
gnome-terminal &
我所要做的就是输入
go
它打开了我需要的两个窗口。
有趣的是,在末尾添加退出行不会关闭原始终端,但这没关系。
这肯定可以节省时间。