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 简介及对比

linux 下的特殊文件 /dev/null 和 /de/zero

linux/dev/null作用

清空文件内容命令之echo和/dev/null区别?

/dev/null简介