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

王朝学院·作者佚名  2016-05-26
窄屏简体版  字體: 小  |  中  |  大  |  超大  

特殊文件: /dev/null和/dev/tty转自:http://www.cnblogs.com/stephen-liu74/archive/2011/11/10/2240461.html

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航