<STDIN>
简称为
readline( STDIN )
你连一句话都不想读;您想检查文件句柄是否连接到终端。
tty是一个终端。
1.
在unix中,tty是一类特定的字符设备。(稍后将详细介绍。)它基本上是指与用户的交互界面。
2.
-t
,记录为功能
-X
,tests是提供的文件句柄连接到tty。例如,它可能最终会调用
isatty
内部。
早些时候,我说过ttys是一类特定的字符设备。这意味着一些字符设备不是tty。但更重要的是,这也意味着不是字符设备的文件句柄也不能是tty。其他类型的文件句柄包括“普通文件”、目录、套接字、管道和块设备。
-t
对于连接到其中任何一个的句柄,将返回false。
$ printf '' >file
$ perl -Mv5.14 -e'say -t STDIN ? 1 : 0' # Happens to be a tty.
1
$ perl -Mv5.14 -e'say -t STDIN ? 1 : 0' </dev/tty # Definitely a tty.
1
$ perl -Mv5.14 -e'say -t STDIN ? 1 : 0' </dev/null # Char dev that's not a TTY
0
$ perl -Mv5.14 -e'say -t STDIN ? 1 : 0' <file # Plain file.
0
$ printf '' | perl -Mv5.14 -e'say -t STDIN ? 1 : 0' # Pipe
0
-
这是缩写
"teletype" and "teletypewriter"
,这让人回想起人们通过打字机和打印机组合远程连接电脑的时代,而不是将键盘和显示器插入其中。
-
还有一种称为伪tty的tty,它允许程序像用户一样与其他程序通信。