STDIN文件描述符代表shell的标准输入。对终端界面来说,标准输入是键盘。shell从STDIN文件描述符对应的键盘获得输入,在用户输入时处理每个字符。
在使用输入重定向符号(<)时,Linux会用重定向指定的文件来替换标准输入文件描述符。它会读取文件并提取数据,就如同它是键盘上键入的。
许多bash命令能接受STDIN的输入,尤其是没有在命令行上指定文件的话。下面是个用cat命令处理STDIN输入的数据的例子。
$ cat
this is a test
this is a test
this is a second test.
this is a second test.
当在命令行上只输入cat命令时,它会从STDIN接受输入。输入一行,cat命令就会显示出一行。
也可以通过STDIN重定向符号强制cat命令接受来自另一个非STDIN文件的输入。
$ cat < testfile
This is the first line.
This is the second line.
This is the third line.
$
现在cat命令会用testfile文件中的行作为输入。可以使用这种技术将数据输入到任何能从STDIN接受数据的shell命令中。