我有一些打开图形终端的bash脚本(Gnome-terminal,LXTerminal,Konsole等)。
但是我想知道是否存在开放终端的惯用方法?像文件类型的XDG标准?否则,我很难用打开终端的具体方法编写引用,例如:
lxterminal -e "ls"
一种更简洁的方法是设置一个'openTerminal'函数,它将命令作为参数之一运行。
答案 0 :(得分:2)
Debian使用{em> x-terminal-emulator
中描述的11.8.3 Packages providing a terminal emulator 虚拟软件包执行此操作
为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]并运行指定的命令,将命令行的其余部分解释为直接传递给exec的命令,以xterm的方式。
- 支持命令行选项-T title,它创建一个带窗口标题标题的新终端窗口。
也就是说,该策略描述了从20世纪90年代中期开始与xterm的最小兼容性。
取得了有限的成功:
-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”包当然是本地开发包,未发布)。