2.5.5.2 特殊文件:/dev/null 与 /dev/tty
Posted avention
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.5.5.2 特殊文件:/dev/null 与 /dev/tty相关的知识,希望对你有一定的参考价值。
UNIX 系统提供了连个对Shell编程特别有用的特殊文件。
第一个文件 /dev/null ,就是大家所熟知的位桶(bit bucket)。传送到此文件的数据都会被丢掉。换句话说,当程序将数据写入到此文件时,会认为它已经完成写入数据的操作,而实际上什么事都没做。如果需要的是命令的退出状态,而非它的输出,此功能会很有用。
例如,测试一个文件是否包含某个模式(pattern):
if grep pattern myfile > /dev/null
then
... 找到pattern时需要做的操作
else
... 未找到pattern时需要做的操作
fi
[[email protected] test]$ cat 6.txt
fdsv
[[email protected] test]$ if grep a 6.txt > /dev/null
> then
> echo "a in 6.txt"
> else
> echo "a not in 6.txt"
> fi
a not in 6.txt
相对地,读取 /dev/null 则会立即返回文件结束符号(end-of-file)。读取 /dev/null的操作很少会出现在Shell程序里。
另一个特殊文件为 /dev/tty 。当程序打开此文件时,UNIX会自动将它重定向到一个终端 【一个实体的控制台(console)或串行端口(serial port),也可能是一个通过网络与窗口登录的伪终端(pseudoterminal)】再与程序结合。这在程序必须读取人工输入(如用户名、密码等)特别有用。
以上是关于2.5.5.2 特殊文件:/dev/null 与 /dev/tty的主要内容,如果未能解决你的问题,请参考以下文章
Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero 简介及对比
转 Linux 下的两个特殊的文件 -- /dev/null 和 /dev/zero 简介及对比