linuxshell
命令使用.一般函数将在下文提及.
不用与和或操作符,我们也可以用if表达式作任何事情,但是使用与或操作符会更便利很多. 2.case case :表达式可以用来匹配一个给定的字符串,而不是数字. case ... in ...) do something here ;; esac 让我们看一个例子. file命令可以辨别出一个给定文件的文件类型,比如: file lf.gz 这将返回: lf.gz: gzip compressed data, deflated, original filename, last modified: Mon Aug 27 23:09:18 2001, os: Unix 我们利用这一点写了一个叫做smartzip的脚本,该脚本可以自动解压bzip2, gzip 和zip 类型的压缩文件: #!/bin/sh ftype=`file "$1"` case "$ftype" in "$1: Zip archive"*) unzip "$1" ;; "$1: gzip compressed"*) gunzip "$1" ;; "$1: bzip2 compressed"*) bunzip2 "$1" ;; *) echo "File $1 can not be uncompressed with smartzip";; esac 您可能注意到我们在这里使用了一个特殊的变量$1.该变量包含了传递给该程序的第一个参数值. 也就是说,当我们运行: smartzip articles.zip $1 就是字符串 articles.zip 3. selsect select 表达式是一种bash的扩展应用,尤其擅长于交互式使用.用户可以从一组不同的值中进行选择. select var in ... ; do break done .... now $var can be used .... 下面是一个例子: #!/bin/sh echo "What is your favourite OS?" select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do break done echo "You have selected $var" 下面是该脚本运行的结果: What is your favourite OS? 1) Linux 2) Gnu Hurd 3) Free BSD 4) Other #? 1 You have selected Linux 4.loop loop表达式: while ...; do .... done while-loop 将运行直到表达式测试为真.will run while the expression that we test for is true. 关键字"break" 用来跳出循环.而关键字”continue”用来不执行余下的部分而直接跳到下一个循环.
for-loop表达式查看一个字符串列表 (字符串用空格分隔) 然后将其赋给一个变量: for var in ....; do .... done 在下面的例子中,将分别打印ABC到屏幕上: #!/bin/sh for var in A B C ; do echo "var is $var" done 下面是一个更为有用的脚本showrpm,其功能是打印一些RPM包的统计信息: shell也有一个真实的调试模式.如果在脚本"strangescript" 中有错误,您可以这样来进行调试: sh -x strangescript 这将执行该脚本并显示所有变量的值. shell还有一个不需要执行脚本只是检查语法的模式.可以这样使用: sh -n your_script 这将返回所有语法错误. 本文出自 “crazy_linux” 博客,谢绝转载! |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |