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

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

我想自动登录登录时使用tty1,然后用于vlock锁定它。

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

答案1

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

#!/bin/sh

case $(tty) in /dev/tty[0-9]*)
    vlock ;;
esac

答案2

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

[ -t 0 ] && echo "TTY available" || echo "No TTY available"

相关内容