特殊文件: /dev/null和/dev/tty

Linux系统提供了两个对Shell编程非常有用的特殊文件,/dev/null和/dev/tty。其中/dev/null将会丢掉所有写入它的数 据,换句换说,当程序将数据写入到此文件时,会认为它已经成功完成写入数据的操作,但实际上什么事都没有做。如果你需要的是命令的退出状态,而非它的输 出,此功能会非常有用,见如下Shell代码:
    /> vi test_dev_null.sh
    
    #!/bin/bash
    if grep hello TestFile > /dev/null
    then
        echo "Found"
    else
        echo "NOT Found"
    fi
    在vi中保存并退出后执行以下命令:
    /> chmod +x test_dev_null.sh  #使该文件成为可执行文件
    /> cat > TestFile
    hello my friend
    CTRL + D                             #退出命令行文件编辑状态
    /> ./test_dev_null.sh
    Found                                 #这里并没有输出grep命令的执行结果。
    将以上Shell脚本做如下修改:
    /> vi test_dev_null.sh
    
    #!/bin/bash
    if grep hello TestFile
    then
        echo "Found"
    else
        echo "NOT Found"
    fi
    在vi中保存退出后,再次执行该脚本:
    /> ./test_dev_null.sh
    hello my friend                      #grep命令的执行结果被输出了。
    Found
    
    下面我们再来看/dev/tty的用途。当程序打开此文件时,Linux会自动将它重定向到一个终端窗口,因此该文件对于读取人工输入时特别有用。见如下Shell代码:
    /> vi test_dev_tty.sh
    
    #!/bin/bash
    printf "Enter new password: "    #提示输入
    stty -echo                               #关闭自动打印输入字符的功能
    read password < /dev/tty         #读取密码
    printf "\nEnter again: "             #换行后提示再输入一次
    read password2 < /dev/tty       #再读取一次以确认
    printf "\n"                               #换行
    stty echo                                #记着打开自动打印输入字符的功能
    echo "Password = " $password #输出读入变量
    echo "Password2 = " $password2
    echo "All Done"

在vi中保存并退出后执行以下命令:
    /> chmod +x test_dev_tty.sh #使该文件成为可执行文件
    /> ./test_dev_tty
    Enter new password:             #这里密码的输入被读入到脚本中的password变量
    Enter again:                          #这里密码的输入被读入到脚本中的password2变量
    Password = hello
    Password2 = hello
    All Done

转载于:https://www.cnblogs.com/tianzhiyi/p/5312015.html

Linux命令--- /dev/null和/dev/tty相关推荐

  1. linux dd devzero,makefile中ifeq与ifneq dev/null和dev/zero简介 dd命令

    ifeq语法是ifeq ";" ";"  ,功能是比较参数"arg1"和"arg2"的值是否相同,相同时为1 ifneq ...

  2. linux mmap /dev/zero,/dev/null 和 /dev/zero误删除重建方法

    一台服务器同事反馈/dev/null使用不正常,登陆发现,其由一个块设备文件变成了一个普通方件,看这个情况应该是被删除后,重新直接touch了一个文件掩盖.重建/dev/null和/dev/zero的 ...

  3. 关于/dev/null 和 /dev/zero文件详解以及误删/dev/null和/dev/zero的解决方法和利用/dev/zero进行磁盘IO测试方法

    1.概论 -- 来自维基的解释 /dev/null  : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一 ...

  4. /dev/null 、/dev/zero、/dev/random、/dev/urandom

    Linux中的虚拟设备/dev/null./dev/zero./dev/random和/dev/urandom /dev/null 利用/dev/null来清除不必要的输出 把/dev/null看作& ...

  5. Shell中的/dev/null 21 与 21 /dev/null 与/dev/null 的区别

    转自:http://blog.csdn.net/reyleon/article/details/11595985 默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入).标准输出(输出到屏幕). ...

  6. 关于 /dev/null 与 /dev/zero

    使用/dev/null 把/dev/null 看作"黑 洞" . 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /de ...

  7. LINUX命令后面常见的/dev/null 解释

    Linux中的标准输入输出 0 是标准输入,一般是从键盘获得输入 1 是标准输出,一般是输出到屏幕了 2 是标准错误,有时候屏幕上可以看到,但是重定向的文件中看不到的就是它了 >为重定向符号 & ...

  8. linux命令后面常见的/dev/null 和 21 的含义

    >/dev/null 输出到空设备,表示丢掉输出信息. 2 > &1 将输出到标准错误的信息输出到标准输出设备(通常是屏幕) 有3个默认的i/o, 0 是标准输入,一般是键盘 1 ...

  9. linux /dev/null,Shell中 /dev/null和 /dev/null 21

    先用简单的语言回答题主的问题: shell程序中 2> /dev/null 代表什么意思? 答:"2> /dev/null" 代表忽略掉错误提示信息. 如题 2> ...

最新文章

  1. [转载]Matlab之静态文本多行输出
  2. dokuwiki 的管理和使用(补充)
  3. 百度AI原生云实践: 基于容器云打造 AI 开发基础设施
  4. 【渝粤题库】陕西师范大学300011 历史文献学
  5. 清新淡雅水彩手绘花卉插画素材,psd分层好用!
  6. iperf命令linux,Linux iperf 用法介绍
  7. windows10连接小米耳机Redmi AirDots 2
  8. python怎么修改界面颜色_python中颜色设置
  9. 财智V6.0(完美破解序列号特别版)
  10. LibPcap丢包问题
  11. 前端和后端分工的三种模式
  12. 苹果4s手机装 java微信_苹果4s微信版本过低怎么办 大师来详解
  13. 《安富莱嵌入式周报》第210期:2021.04.26--2021.05.02
  14. 使用这个vue snippets,提高百倍开发效率
  15. 程序员北漂没钱整租,如何爱上合租?
  16. 头脑风暴法利用计算机让大家进行思想交流,个人与团队管理期末复习
  17. V神赞许的Aztec,如何让以太坊更隐私?
  18. new Foo().getName()经典面试题
  19. 区块链安全初探(二):区块链的层次
  20. 谭浩强C语言(第三版)习题10.4

热门文章

  1. [Ext JS 4] 实战之多选下拉单 (带checkbox) 续 - 带ALL 选项
  2. Chrome , Firfox 对应IE fireEvent 的方法
  3. 滚动图片广告_女排赢球可喜看台马桶广告扎眼 网友:去男足赛场!别在这儿蹭热点...
  4. ecshop php5.5分类文字不显示,在PHP5.5下ecshop修正文件报错归类
  5. java创建 xml_java创建和读取xml
  6. Python中使用xpath获取select option的每一行的text和value
  7. 惠普110a硒鼓加粉步骤_惠普打印机加粉教程(88a硒鼓/36a硒鼓/78a硒鼓)
  8. java读写文件操作
  9. 计算机二级vb操作题如何给分,计算机二级vb操作题.docx
  10. java自由布局_java怎么在界面上随意摆放位置?