我试图回显正在运行的当前终端的类型。例如,如果我正在运行konsole,则它将回显konsole。我试过运行

echo $TERM

但这每次都会输出xterm。有没有更好,更准确的方法?

最佳答案

pstree可以提供帮助。

$ pstree -s $$
init───gnome-terminal───bash───pstree
-s选项显示指定进程的父级。

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

另一个调用(从xterm运行时返回):
$ pstree -s $$
init───xterm───bash───pstree

指定-A选项可使pstree使用ASCII字符,以便您可以轻松解析输出:
$ pstree -A -s $$
init---gnome-terminal---bash---pstree

08-06 00:36