如何打开默认终端而不是使用"xterm"?使用${TERM}安全吗



我想在linux上运行steam,但我不想安装xterm,有两个时刻它需要xterm

echo -e "$*" >$tmpfile
xterm -T "$title" -e "cat $tmpfile; echo -n 'Press enter to continue: '; read input"
rm -f $tmpfile 

# Fall back to sudo in a terminal
xterm -e sudo -p "$prompt
[sudo] password for user: " $*

posix在这里使用${TERM}而不是xterm安全吗?

假设脚本将在X会话中运行;不,没有理由相信TERM会在这种情况下被设置(如果是的话,它指向一个同名的二进制文件将是巧合——这个变量的内容应该是Termcap或Terminfo的密钥;很多时候,在现代系统上,如果它不是xtermemacsdumb的变体,它可能类似于vt220)。

另一方面,如果您的环境是X,则基本上可以保证您拥有xterm

Debian定义了x-terminal-program(IIRC),让用户或系统管理员选择不同的默认终端模拟器。

我不认为POSIX 1003对你试图解决的问题有任何概念(我们也在猜测;也许你可以在你的问题中添加更多细节?)

要求用户可用的更好平台可能是Freedesktop.org,但我不知道例如Mac OSX是否遵守其中任何有用的子集。(如果有的话,他们可能会全部实现;我只是不知道。)

另一方面,简单粗暴的修复方法是首先要求脚本从终端运行;然后,您可以简单地使用cat来显示文本文件(我猜是您的EULA?),使用echo(或者再次使用cat)和read来与用户交互。也就是说,不要试图为这些东西打开一个新的终端窗口。也许在剧本开始的时候进行所有的互动,这样可以很容易地提前退出。

如果你想要图形交互,你需要限制你的目标平台,或者为每个不同的环境编写复杂的包装。

相关内容

  • 没有找到相关文章

最新更新