高级shell编程

高级shell编程

ID:41037577

大小:443.50 KB

页数:62页

时间:2019-08-14

高级shell编程_第1页
高级shell编程_第2页
高级shell编程_第3页
高级shell编程_第4页
高级shell编程_第5页
资源描述:

《高级shell编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、-n-eq和==!=之类的命令的区别?[]和[[]]以及(())区别?27if[-n"$1"]28#测试是否有命令行参数(非空).29then30lines=$131else32lines=$LINES#默认,如果不在命令行中指定.33fi20#当然要使用root用户来运行.21if["$UID"-ne"$ROOT_UID"]22then23echo"Mustberoottorunthisscript."24exit$E_NOTROOT25fi51cd$LOG_DIR5253if[`pwd`!="$LOG_DIR"]#或者if["$PWD"!="$LOG

2、_DIR"]54#不在/var/log中?55then56echo"Can'tchangeto$LOG_DIR."57exit$E_XCD58fi#在处理logfile之前,再确认一遍当前目录是否正确.5960#更有效率的做法是:61#62#cd/var/log

3、

4、{63#echo"Cannotchangetonecessarydirectory.">&264#}当然,在echo中转义的#是不能作为注释的.同样的,#也可以出现在特定的参数替换结构中,或者是出现在数字常量表达式中.1echo"The#heredoesnotbeginacomment."2e

5、cho'The#heredoesnotbeginacomment.'3echoThe#heredoesnotbeginacomment.4echoThe#这里开始一个注释.56echo${PATH#*:}#参数替换,不是一个注释.7echo$((2#101011))#数制转换,不是一个注释.89#感谢,S.C.标准的引用和转义字符("')可以用来转义#.特殊字符:;命令分隔符[分号,即;].可以在同一行上写两个或两个以上的命令.1echohello;echothere234if[-x"$filename"];then#注意:"if"和"then"需要

6、分隔.5#为什么?6echo"File$filenameexists.";cp$filename$filename.bak7else8echo"File$filenamenotfound.";touch$filename9fi;echo"Filetestcomplete."注意一下";"某些情况下需要转义.,逗号操作符.逗号操作符链接了一系列的算术操作.虽然里边所有的内容都被运行了,但只有最后一项被返回.1let"t2=((a=9,15/3))"#Set"a=9"and"t2=15/3";;终止case选项[双分号,即;;].1case"$variabl

7、e"in2abc)echo"$variable=abc";;3xyz)echo"$variable=xyz";;4esac转义符[反斜线,即].一种对单字符的引用机制.X将会"转义"字符X.这等价于"X",也等价于'X'.通常用来转义"和',这样双引号和但引号就不会被解释成特殊含义了.:空命令[冒号,即:].等价于"NOP"(noop,一个什么也不干的命令).也可以被认为与shell的内建命令true作用相同.":"命令是一个bash的内建命令,它的退出码(exitstatus)是"true"(0).1:2echo$?#0死循环:1while

8、:2do3operation-14operation-25...6operation-n7done89#与下边相同:10#whiletrue11#do12#...13#done在if/then中的占位符:1ifcondition2then:#什么都不做,引出分支.3else4take-some-action5fi":"还用来在/etc/passwd和$PATH变量中做分隔符.bash$echo$PATH/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/sbin:/usr/sbin:/usr/games*算术操作符.

9、在算术操作符的上下文中,*号表示乘法运算.如果要做求幂运算,使用**,这是求幂操作符.**幂运算1#在Bash,版本2.02,中开始引入了"**"幂运算符.23let"z=5**3"4echo"z=$z"#z=125$*,$@位置参数.$?退出状态码变量.$?变量保存了一个命令,一个函数,或者是脚本本身的退出状态码.当是0时结果正确$$进程ID变量.这个$$变量保存了它所在脚本的进程ID[1]()命令组.1(a=hello;echo$a)在括号中的命令列表,将会作为一个子shell来运行.在括号中的变量,由于是在子shell中,所以对于脚本剩下的部分是不

10、可用的.父进程,也就是脚本本身,将不能够读取在子进程中创建的变量,也就是在子sh

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。