tty
tty
命令返回连接到标准输入的终端的文件名。在我使用过的 Linux 系统上,这有两种格式,分别是 "/dev/tty4" 或 "/dev/pts/2"。随着时间的推移,我使用过几种方法,但我目前发现最简单的方法(可能特定于 Linux 和 Bash-2.x)是temp=$(tty) ; echo ${temp:5}。这会删除tty
输出的前五个字符,在本例中是 "/dev/"。
以前,我使用tty | sed -e "s:/dev/::",它会删除开头的 "/dev/"。旧系统(以我的经验,RedHat 5.2 及更早版本)仅返回 "/dev/tty4" 格式的文件名,所以我使用tty | sed -e "s/.*tty\(.*\)/\1/".
另一种方法ps ax | grep $$ | awk '{ print $2 }'.
相对速度:在未加载的 486SX25 上,`${temp:5}` 方法大约需要 0.12 秒,`sed` 驱动的方法大约需要 0.19 秒,`awk` 驱动的方法大约需要 0.79 秒。