有没有一种惯用的方法来在Linux中打开graphicsterminal?

我有一些打开graphicsterminal(Gnometerminal,LXTerminal,Konsole等)的bash脚本。

不过,我不知道是否有一种惯用的方式来打开一个terminal? 像文件types的XDG标准? 否则,我很难用特定的方式来打开一个terminal,例如:

lxterminal -e "ls" 

一个更简洁的方法是,我想有一个“openTerminal”函数,它将命令作为参数之一运行。

Debian用x-terminal-emulator 虚拟软件包来做这件事,在11.8.3提供终端仿真器的软件包中有描述

为X Window系统提供符合下列条件的终端仿真程序的软件包应在其“提供”控制字段中声明它们提供了虚拟软件包x-terminal-emulator 。 他们还应该将自己注册为/usr/bin/x-terminal-emulator替代品,优先级为20.该替代品应该为/usr/share/man/man1/x-terminal-emulator.1.gz指向相应的手册页。

要成为一个x终端模拟器,一个程序必须:

  • 能够模拟DEC VT100终端或兼容的终端。

  • 支持命令行选项-e命令,该命令创建一个新的终端窗口[106]并运行指定的命令,以xterm的方式将命令行的其余部分解释为直接传递给exec的命令。

  • 支持命令行选项-T标题,它使用窗口标题标题创建一个新的终端窗口。

也就是说,这个政策描述了从90年代中期以来与xterm的最小兼容性。

这是有限的成功:

  • 一些包装商滥用重点领域,使用价值远高于20。
  • -e选项兼容性很差,您提到的一些终端。

除了Debian(以及派生的发行版,如Ubuntu)之外,这种方法用处不大。

我记得之前回答过这个问题,但是暂时没有看到。 这里是我的Debian /测试列表,注意到每个具有40优先级的软件包并不遵循这个策略:

 $ sudo update-alternatives --config x-terminal-emulator Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/xterm-dev 60 auto mode 1 /usr/bin/evilvte 20 manual mode 2 /usr/bin/gnome-terminal.wrapper 40 manual mode 3 /usr/bin/koi8rxterm 20 manual mode 4 /usr/bin/konsole 40 manual mode 5 /usr/bin/lxterm 30 manual mode 6 /usr/bin/lxterminal 40 manual mode 7 /usr/bin/mate-terminal.wrapper 30 manual mode 8 /usr/bin/mlterm 20 manual mode 9 /usr/bin/mrxvt-full 10 manual mode 10 /usr/bin/pterm 20 manual mode 11 /usr/bin/stterm 15 manual mode 12 /usr/bin/terminology 40 manual mode 13 /usr/bin/urxvt 20 manual mode 14 /usr/bin/uxterm 20 manual mode 15 /usr/bin/xfce4-terminal.wrapper 40 manual mode 16 /usr/bin/xterm 20 manual mode 17 /usr/bin/xterm-dev 60 manual mode Press <enter> to keep the current choice[*], or type selection number: 

(“xterm-dev”包当然是一个本地开发包,未发布)。