0

我有这个脚本,它显示正在使用的终端类型。因此,例如,如果您正在运行 konsole,它将显示 konsole。该脚本需要进入另一个在打开终端时运行的程序,因此它必须非常快。这是我到目前为止所拥有的

#!/bin/bash
shopt -s extglob
SHELLTTY=$(exec ps -p "$$" -o tty=)
P=$$
while read P < <(exec ps -p "$P" -o ppid=) && [[ $P == +([[:digit:]]) ]]; do
    if read T < <(exec ps -p "$P" -o tty=) && [[ $T != "$SHELLTTY" ]]; then
        ps -p "$P" -o comm=
        break
    fi
done

当脚本保存到文件中时,它需要很长时间才能运行。

[~]$ time ./termgrab
konsole

real    0m0.063s
user    0m0.017s
sys     0m0.040s

整个程序本身需要 0.04 秒,所以这大大减慢了它的速度。有没有人有任何建议可以使脚本更快或任何替代方法来实现相同的目标?

4

0 回答 0