UNIX 系统提供了两个对Shell编程特别有用的特殊文件。
 
    第一个文件 /dev/null ,就是大家所熟知的位桶(bit bucket)。传送到此文件的数据都会被丢掉。换句话说,当程序将数据写入到此文件时,会认为它已经完成写入数据的操作,而实际上什么事都没做。如果需要的是命令的退出状态,而非它的输出,此功能会很有用。
    
    例如,测试一个文件是否包含某个模式(pattern):
        if grep pattern myfile > /dev/null
        then 
            ...                 找到pattern时需要做的操作
        else
            ...                 未找到pattern时需要做的操作
        fi
 
[many@avention test]$ cat 6.txt
fdsv
[many@avention 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)】再与程序结合。这在程序必须读取人工输入(如用户名、密码等)特别有用。
 
    

最新文章

  1. ORACLE查看补丁出现“OPatch failed with error code 1”
  2. 重新注册IIS
  3. 使用Axis2建立WebService
  4. AXIS最佳实践
  5. MySQL(三) 数据库表的查询操作【重要】
  6. UVALive 5066 Fire Drill --BFS+DP
  7. 后缀数组 POJ 3974 Palindrome && URAL 1297 Palindrome
  8. 多版本Python管理及Python连接MySQL
  9. C#实现微信公众号群发消息(解决一天只能发一次的限制)
  10. 不同tomcat配置不同的jdk
  11. poj3415
  12. DSL简介(转)
  13. LeetCode之Sort List
  14. Apache 的常见问题
  15. python基础教程第二版 第一章
  16. OSX: Scripts,让BootCamp在不论什么Mac上支持生成Windows7的USB安装盘
  17. sqlserver一些对象的创建
  18. [转]【docker】CMD ENTRYPOINT 区别
  19. java知识点3
  20. js 一些方法

热门文章

  1. 如何在 ubuntu 12.04 上安装 skype(转载)
  2. 短链接及关键字过滤ac自动机设计思路
  3. 【BZOJ2525】[Poi2011]Dynamite(二分,树形dp)
  4. P2252 取石子游戏
  5. vbnet 进程监控,监控Acad开启的数量,并且添加到开机启动
  6. springboot(三)配置日志
  7. 源码阅读之LinkedList(JDK8)
  8. 对mysql修改库里面所有的引擎mysaim 为 innodb
  9. SeasLog的日志
  10. Nginx开启http2访问和gzip网页压缩功能