回显正在运行的终端类型

Jos*_*rot 2 linux shell

我正在尝试回应正在运行的当前终端的类型.例如,如果我正在运行konsole,那么它将回应konsole.我试过跑步

echo $TERM
Run Code Online (Sandbox Code Playgroud)

但是每次都打印出xterm.有没有更好,更准确的方法呢?

dev*_*ull 6

pstree 可以帮助.

$ pstree -s $$
init???gnome-terminal???bash???pstree
Run Code Online (Sandbox Code Playgroud)

-s选项显示指定进程的父级.

在bash(和Bourne-shell变体)中,$$表示当前shell的PID.

另一个调用(从xterm返回运行时):

$ pstree -s $$
init???xterm???bash???pstree
Run Code Online (Sandbox Code Playgroud)

指定该-A选项会pstree使用ASCII字符,以便您可以轻松地解析输出:

$ pstree -A -s $$ 
init---gnome-terminal---bash---pstree
Run Code Online (Sandbox Code Playgroud)