- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux Shell常用技巧
Linux Shell常用技巧(一)Posted on 2011-11-10 07:19 Stephen_Liu阅读(7611) 评论(2) 编辑收藏一.?? ?特殊文件: /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二.?? ?简单的命令跟踪:?? ?Linux Shell提供了两种方式来跟踪Shell脚本中的命令,以帮助我们准确的定位程序中存在的问题。下面的代码为第一种方式,该方式会将Shell脚本中所有被执行的命令打印到终端,并在命令前加+:加号的后面还跟着一个空格。?? ?/ cat trace_all_command.sh?? ?who | wc -l????????????????????????? #这两条Shell命令将输出当前Linux服务器登录的用户数量?? ?CTRL + D???
文档评论(0)