全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Shell编程:Linux系统环境程序设计之路函数 别的高级语言都有函数的感念,当然shell编程也有这个概念,当写一个比较大型的shell程序的时候,如果没有函数,则会到处都是重复的代码。当然也可以调用别的脚本,但是速度会比较慢。所以函数是必不可少并且非常重要的一个东西。 定义函数的格式function_name().例子:/ fun_sshow()echo show $*echo $*echo after functionshow c decho $*exit 0/$./fun_s a b结果是a bafter functionc da b 从上面的例子可以看出,当脚本调用函数的时候,脚本程序的位置参数会被替换成函数的位置参数,并且函数调用结束后还原。 return:/ return_s#!/bin/bashfirst()echo is returnsecond()echo before returnreturn 0echo after returnreturn_value=$(first)echo $return_valuesecond&echo return 0|echo return otherexit 0/输出 is returnbefore returnreturn 0 该例子说明可以捕获函数内echo的字符串,如echo $(first) , 函数在return后不会再执行下面的语句。 second&echo return 0|echo return other 该句的输出为 return 0。这里有人可能会和C语言混淆,因为在C语言里0表示的是false。而这里的0表示函数执行成功,可以理解为true,所以会输出return 0。 命令 break,continue 和c语言基本类似 echo 了解一点即可echo -n 输出没有换行。 eval: 例子:/ eval_s #!/bin/bashvar1=abcdvar2=var1eval var3=$var2echo $var3exit 0/ eval相当于一个额外的$,它给出一个变量值的值,如例子里先是$var2使var3变成$var1,又var1=abcd,所以var3变为abcd,连续解析了两次变量。 export: 看下面两个例子可以很好的说明export的作用。 / export1_s#!/bin/bashvar1=this is var1var2=this is var2export var2./export2_sexit 0/ export2_s#!/bin/bashecho $var1echo $var2exit 0/输出:this is var2 输出结果说明var1为空而var2却有值,这正是export起的作用,把var2变成了一个环境变量。 再看个例子: #!/bin/bashecho $var1echo $var2echo $var3exit 0/ set-a_s#!/bin/bashset -avar1=var1var2=var2var3=var3./set-a2_sexit 0/ set-a2_s输出:var1var2var3 set -a的作用就是把它之后声明的所有变量都export printf: 和C语言里的printf用法很相似的一个命令,使用非常方便。 set:/ set_s#!/bin/bashfun1()echo a b c dset $(fun1)echo $1echo $(date)set $(date)echo $1exit 0/输出: a 2008年 03月 06日 星期四 03:57:55 CST 2008年 date的输出是几个由空格分隔的值,set的作用能分隔出每个域。 shift: 就是让$2变$1,$3变$2,依此类推。 trap: 非常有用的一个命令,用于指定接受到信号后进行的动作,系统定义了非常多的信号类型,用trap -l命令可以查看所有的信号。 常见的几个信号有: INT(2) 中断,按下ctrl+c组合键引发的 QUIT(3) 退出,按下ctrl+引发 例子: / trap_s#!/bin/bashtrap var=2 INTecho please enter ctrl+cvar=1while $var = 1 doecho in whilesleep 1doneexit 0/ 这个例子在我按下ctrl+c后改变了var的值,所以跳出循环,程序结束。 shell下的程序设计非常强大,你可以用它做出很多小工具,让你的使用linux
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 投资入股合作协议书模板
- 余甘子种苗生产技术规程
- 2024年培训班兼职教师聘用合同模板
- 建筑行业劳动合同范本
- 回收协议书范本2024年
- 个人车位买卖协议样本
- 2024年三人结伙协议书范本
- 合作项目保密协议书2024年
- 版权承包协议样本
- 房地产合同范本:房屋出售协议书
- 2023年安徽蚌埠市(市区)外地返蚌考生中考报名的公告新
- 文网文游戏业务发展报告
- 厂房工程装饰装修工程施工方案
- 129运动主题班会
- YB/T 1428-1997炭素材料内在水分的测定
- 郑州大学模板课件
- 牛人总结雅思7.5以上经验63大页超详细
- 矿山地质环境保护和土地复垦方案 编制规范指南规范
- 口腔科医疗护理技术操作规程版
- 在例题与命题研究中实现教师专业成长
- 头颅CT精美完整课件
评论
0/150
提交评论