Answers:
在我看来,您想要检查是否有X服务器要连接。
就像是:
if [ -n "$DISPLAY" ]; then
: X
else
: no X
fi
如果您打算区分交互式和非交互式shell,请使用test
的内置支持来检测它(不确定ksh是否具有它,但是coreutils的二进制文件也支持它):
test -t 0 # will return 0 for interactive shells
如果您确实要使用tty / pty / pts或其他工具,请解析以下内容的输出tty
:
$ tty # konsole
/dev/pts/4
$ tty # virtual terminal
/dev/tty2
这将取决于操作系统。对于Linux,您可以执行以下操作:
#!/bin/ksh
if [ "$TERM" == "linux" ]; then
echo "I'm in a virtual console"
else
echo "I'm not in a virtual console"
fi
当然,这是假设您自己没有更改TERM
环境变量,linux
仅当您登录虚拟控制台时,该变量才会自动设置为(在Ubuntu中xterm
,控制台应用程序中将其设置为,但是在操作系统之间可能会有所不同)。在所使用的各种应用程序中检查TERM的内容,并进行适当设置。