我有这个脚本显示正在使用的终端类型。因此,例如,如果您正在运行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秒,所以这会大大减慢它。有没有人有任何建议使脚本更快或任何其他方法来实现相同的东西?