lect06Shell编程变量.ppt
《lect06Shell编程变量.ppt》由会员分享,可在线阅读,更多相关《lect06Shell编程变量.ppt(30页珍藏版)》请在装配图网上搜索。
Linux操作系统,Shell脚本编程Shell变量,主要内容和学习要求,shell变量的设置、查看和清除局部变量与作用域环境变量及其设置内置命令declare和printf变量测试与赋值位置变量与变量的间接引用命令替换的两种方式整型变量的算术运算和算术扩展数组变量及其引用方法,变量,变量,变量举例,例:,$是特殊变量,用来存储当前shell进程的PID,局部变量和作用域,例:,只读变量,变量被创建时所处的shell称为父shell。如果在父shell中启动一个新的shell(或进程),则该shell(或进程)被称为子shell(或子进程)。,环境变量,环境变量就象DNA,可以从父亲传递给儿子,再到孙子,但不能从子进程传递给父进程。,环境变量举例,例:,将全局变量转换成局部变量,列出所有全局变量,declare常用选项,内置命令declare,declarermyname=jypanunsetmynamedeclaremyname=JianyuPan,declare,declare举例,printf可用来按指定的格式输出变量,printfformat输出参数列表,printf的打印格式与C语言中的printf相同,printf%-12.5fn123.456,format以%开头,flag,fieldwidth,precision,格式符,-:左对齐+:输出符号0:空白处添0空格:前面加一空格,字段宽度,小数点后输出位数,printf命令,printf命令的格式说明符,format中还可以使用,printf命令,printfThenumberis:%.2fn100,printf%-20s|%12.5f|nJoy10,printf%-10d%010o%+10 xn202020,printf%6dt%6o%6xn202020,printf命令举例,例:,shell提供一些专用的修饰符来检查某个变量是否已被设置,然后根据测试结果指定变量的值,也称变量置换,变量测试,color=bluenewcolor=$color:-grey,unsetcolorechoTheskyis$color:-greytodayecho$color,echoTheskyis$color:=greytodayecho$color,echoTheskyis$color:?errortodayecho$color,echoTheskyis$color:+bluetodayecho$color,变量测试举例,例:,位置参量是一组特殊的内置变量,通常被shell脚本用来从命令行接受参数,或被函数用来保存传递给它的参数。,执行shell脚本时,用户可以通过命令行向脚本传递信息,跟在脚本名后面的用空格隔开的每个字符串都称为位置参量。,在脚本中使用这些参数时,需通过位置参量来引用。例如:$1表示第一个参数,$2表示第二个参数,以此类推。$9以后需要用花括号把数字括起来,如第10个位置参量以$10的方式来访问。,位置参量(命令行参数),位置参量列表,如何通过str2的值来引用str1的值?(间接引用),str1=HelloWorldstr2=str1echo$str2,echo$str2?echo$str2?,evalnewstr=$str2echo$newstr,newstr=$!str2bash2.0以上才支持echo$newstrecho$!str2,变量的间接引用,listpage=ls-l|moreecho$listpage,listpage=ls-l|moreeval$listpage,evalnewstr=$str2,eval,evalarg1arg2.argN,将所有的参数连接成一个表达式,并计算或执行该表达式,参数中的任何变量都将被展开。,命令替换的用处是将命令的输出结果赋给一个变量,或者用命令的输出结果代入命令所处的位置。,命令替换,Bash变量是没有严格的类型定义,本质上Bash变量都是字符串,但Bash也允许定义整型变量,可以参加运算与比较。,num2=1;echo$num2num2=$num2+1;echo$num2,declarei列出所有整型变量,未被定义为整型的变量不能直接参加算术运算!,算术运算,declare定义的整型变量可以直接进行算术运算。,num2=1;echo$num2letnum2=4+1;echo$num2letnum2=$num2+1;echo$num2,赋值符号和运算符两边不能留空格!如果将字符串赋值给一个整型变量时,则变量的值为0如果变量的值是字符串,则进行算术运算时设为0,letnum2=4+1letnum2=4+1#用引号忽略空格的特殊含义,用let命令进行算术运算时,最好加双引号。,整数运算,未被定义为整型的变量,可用内置命令let进行算术运算。,let命令操作符,注:按位运算是以二进制形式进行的。,a=2;leta=2用引号忽略的特殊含义,let命令运算操作符,Bash只支持整数运算,但可以通过使用bc和awk工具来处理更复杂的运算。,n=$(echoscale=3;13/2|bc)echo$n,m=awkBEGINx=2.45;y=3.123;printf%.3fn,x*yecho$m,浮点数运算,注意$,$(),$,$()的不同作用,算术扩展,Bash2.x以上支持一维数组,下标从0开始。,variable=(item1item2item3.)variablen=value,declare-avariablevariable=(item1item2item3.),数组变量,数组可以用declare命令创建,或直接给变量名加下标来创建。,declare-astustu=(math1101math1102math1103)echo$stu0#列出stu的第一个元素echo$stu*#列出stu的所有元素echo$#stu*#给出数组stu中元素的个数,数组变量举例,相关命令小结,echo$variable或echo$variable,unsetvariable,set,readonlyvariable,exportvariable=valueexport-nvariableexport-p,declare选项variable=value,printfformat输出参数列表,相关命令小结,let,$var:-word、$var:=word、$var:?word、$var:+word,$0、$1-$9、$n、$#、$*、$、$、$!、$?、$-,evalnewstr=$str2、newstr=$!str2,hostname、$(hostname),$expression、$(expression),- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lect06Shell 编程 变量
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
相关资源
更多
相关搜索