我一直在尝试仅显示用作名称的终端类型。例如,如果我使用的是 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 而不是终止符。我可以想到几个场景来提取终端的类型,但没有一个场景不包含条件语句来检查特定类型的终端。我遇到的问题是我无法准确预测终端名称前面或后面可能有多少非或非相关事物或它们将是什么,我也无法准确预测终端名称将是什么。有没有人对此有任何想法?