我正在为 Zero-K(一款开源 RTS 游戏)制作 Linux 安装程序 (zero-k.info)。它将用于zenity
但dialogs
必须zenity
安装。由于很多人还没有它,因此zenity
必须通过脚本安装它。
我不想在没有打开终端并提供一些反馈的情况下在用户系统上安装某些东西。如果没有反馈,当它实际上正忙着安装东西时,它可能看起来没有发生任何事情。问题是脚本必须打开xfce4-terminal
或gnome-terminal
另一个 DE 特定终端,这意味着每个 DE 必须有不同的脚本。
是否有命令可以打开脚本所使用的 OS/DE 使用的任何终端?
答案1
据我所知,xterm
是 X Window 系统的标准终端仿真器。因此,它应该安装在任何类似 Linux 的系统中。要打开它并在其中执行命令,您可以使用:
xterm -e "command [args]"
另请参见man xterm
和xterm -help
。
如果您想检查外部是否存在其他一些终端模拟器,xterm
可以使用例如:
if hash gnome-terminal 2>/dev/null; then #if gnome-terminal exists
gnome-terminal -e "command [args]"
elif hash konsole 2>/dev/null; then #if konsole exists
konsole -e "command [args]"
#check the existence of some other terminal emulators here
else #you don't need to check the existence of xterm; this should be installed in any Linux like system
xterm -e "command [args]"
答案2
Debian 及其衍生产品(Ubuntu、Mint 等)使用/usr/bin/x-terminal-emulator
,这是由 debian 的替代系统管理的符号链接,因此它始终指向系统的首选终端模拟器。
这对您使用 RHEL、Fedora、Slackware 或许多其他发行版没有帮助,但您可以/usr/bin/x-terminal-emulator
在实现 Radu 的答案时首先检查是否存在。