启动终端仿真器最方便的方法是什么?


14

假设我需要编写一个脚本来启动终端并执行命令,并且需要在各种系统上工作。我该如何以安全便携的方式进行操作?

xterm始终安装?我假设任何带有GUI的* nix必须具有一些终端仿真器。我怎么去呢?Debian系统具有 x-terminal-emulator但显然甚至不能在Red Hat中运行,更不用说非Linux * nixes了。


这可能与expect
Red Cricket

@RedCricket expect?怎么样?通过要求用户输入他们的终端?
terdon

..很好奇,为什么您需要这样做?也许我们可以建议一个替代解决方案。
user606723 2013年

@ user606723的基本好奇心,想知道是否存在诸如POSIX或opendesktop定义的默认终端模拟器之类的东西(看起来答案是否定的)。作为对此 SU问题的回应。
terdon

您是否真的需要启动终端仿真器,还是只需要获取一个Shell?那是完全不同的需求。
Lie Ryan

Answers:


10

我认为你不能。xterm不需要在任何地方安装,并且实际上可能不是默认安装。特别是在使用提供其自己的终端的桌面环境时。

我觉得你最好的选择可能是检查了几个不同终端的存在(比如xdg-terminalx-terminal-emulatorgnome-terminalkonsolexterm)。也许努力将xdg-terminal实际添加到FreeDesktop.org标准中。

然后您会发现不同的终端有不同的方式来运行命令,有时甚至是同一终端的不同版本……例如,请参见Debian Bug#648271

您可能还应该为管理员/用户提供一种设置自定义命令的方法。肯定会需要。


是的,这是由有关SU 的一个问题引起的,我希望有比一堆case声明更简单的方法。
terdon

1
@terdon我猜最简单的方法是列出一个相当依赖轻量级的终端作为脚本的要求,然后就使用它。
derobert

那我过去运行时出现的终端窗口怎么样xinit?多年以来一直没有这样做,但是它曾经使用空xterm(?)窗口加载简单的X服务器,您可以从中开始会话。这是否意味着X会安装某些终端模拟器?
terdon

@terdon曾经是,但是随后xorg的人们将X分解为一堆软件包。(该终端可能是xterm)。但是快速检查显示,如果愿意,我可以从系统中删除xterm。
derobert

@terdon这是xterm,传统的“默认” X终端仿真器。但是它可能并不总是被安装。IIRC的默认Ubuntu安装仅包括gnome-terminal,而不包括xterm(对于Kubuntu,它将是konsole,等等)。
吉尔斯(Gillles)“所以别再作恶了”

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.