有没有办法检测有人在bash中使用的终端程序

时间:2015-10-03 04:26:01

标签: linux bash ssh terminal

我正在尝试根据某人正在使用的终端程序(Putty,mobaxterm等)创建一个行为不同的bash脚本。有没有办法从bash脚本中检索这种信息?

我在网上搜索但是我找不到任何东西(或者我只是错误地写错了,这可能是一个明显的可能性)。

谢谢

2 个答案:

答案 0 :(得分:0)

您需要了解这些是终端模拟器。对于(大多数?)现代线路终端有一个简单粗糙的identification function(现在这是一个矛盾的!)但它会返回类似vt102xterm的东西,即无论什么模拟器正在模拟;不是执行此仿真的程序的标识。顺便提一下,这通常在会话启动时使用,并反映在$TERM环境变量的值中。

答案 1 :(得分:0)

执行此操作的常用方法是环境变量TERM。尝试

echo $TERM

应输出终端仿真器的类型,指示其功能。通常,虽然并非总是如此,但TERM的值将是终端仿真器的名称。例如,xterm可能会将TERM设置为xtermxterm-color,具体取决于配置。

请注意,用户可以更改此变量,因此可能包含完全不同的内容。

也就是说,如果你想从脚本中用终端做一些奇特的东西,你不需要手工建立对不同终端的支持。有各种库提供所有常用功能(清除终端,调整大小窗口,更改字体等)。最受欢迎的是terminfo;有各种基于terminfo构建的包。