web-dev-qa-db-ja.com

仮想端末で実行されているかどうかを検出しますか?

ログイン時に autologintty1にしてから、vlockを使用してロックしたい。

現在の端末がコンソール仮想端末(例:tty1)であるかどうかをBashから検出するには、vlock行を.bash_profileに入れて、ログに記録する場合にのみ実行できるようにするにはどうすればよいですか。 tty1から

13
kiri

ttyを使用して現在の仮想端末の名前を取得し、caseステートメントを使用してそれをテストできます。

#!/bin/sh

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

STDIN(FD0)をテストするだけで十分です。

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