检测是否在虚拟终端中运行?

kir*_*iri 13 terminal shell-script tty console

我想自动登陆tty1上登录,然后用vlock其锁定。

如何从 Bash 检测当前终端是否是控制台虚拟终端(例如tty1),以便我可以将vlock线路放入.bash_profile并仅在通过登录时运行tty1

小智 16

您可以使用tty获取当前虚拟终端的名称,然后使用case语句对其进行测试:

#!/bin/sh

case $(tty) in /dev/tty[0-9]*)
    vlock ;;
esac
Run Code Online (Sandbox Code Playgroud)


JRF*_*son 6

通常简单地测试 STDIN (FD0) 就足够了:

[ -t 0 ] && echo "TTY available" || echo "No TTY available"
Run Code Online (Sandbox Code Playgroud)