Ubuntu 16.04 bash - 我可以在一个脚本中打开两个交互式终端窗口吗?

Ubuntu 16.04 bash - 我可以在一个脚本中打开两个交互式终端窗口吗?

每当我开始数据操作会话时,我都必须手动打开两个终端 - 一个用于工作,另一个运行 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

它打开了我需要的两个窗口。

有趣的是,在末尾添加退出行不会关闭原始终端,但这没关系。

这肯定可以节省时间。

相关内容