【发布时间】:2013-08-26 21:14:50
【问题描述】:
我一直在尝试仅显示用作名称的终端类型。例如,如果我使用的是 konsole,它将显示 konsole。到目前为止,我一直在使用这个命令。
pstree -A -s $$
输出这个。
systemd---konsole---bash---pstree
我有以下可以从该行提取 konsole
pstree -A -s $$ | sed 's/systemd---//g;s/---.*//g' | head -1
并且正确输出 konsole。但是有些人只使用 pstree 命令的输出可能看起来像这样。
systemd---kdeinit4---terminator---bash---pstree
或者这个
systemd---kdeinit4---lxterminal---bash---pstree
然后当我添加 sed 命令时,它会提取 kdeinit4 而不是终止符。我可以想到几个场景来提取终端类型,但没有一个场景不包含条件语句来检查特定类型的终端。我遇到的问题是我无法准确预测终端名称前面或后面可能有多少非或非相关事物或它们将是什么,我也无法准确预测终端名称将是什么。有没有人对此有任何想法?
【问题讨论】:
-
@JoSo 我在
$TERM中有xterm,但我正在使用terminator -
我也想要这个结果。今晚我做了更多的观察,下面是 Ubuntu 下的行,例如将
init-mdm作为祖先。现在我认为我可以在 .profile 中export一些环境变量,如START_TERM,这可以为我提供任何级别的脚本甚至像fork()或 @ 这样的 desired 结果987654334@。 (到目前为止一切顺利......)