第05章shell编程.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:34 大小:196KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

第05章shell编程.ppt

第05章shell编程.ppt

预览

免费试读已结束,剩余 24 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第五章shell编程Shell程序的设计与执行Shell变量的应用3)Shell编程中三种引号的作用:单引号‘’:其中内容是字符串,没有shell的特殊含义;双引号“”:其中特殊字符作shell含义解释,其它作字符;反引号``:其中的命令可作为执行结果进行赋值。例:$file=report$echo‘Thetimeis`date`,thefileis$file’回显:Thetimeis`date`,thefileis$file$echo“Thetimeis`date`,thefileis$file”回显:Thetimeis2010年08月29日星期日19:51:21HKT,thefileisreport.$TT=`date`$echo$TT回显:2010年08月29日星期日19:51:21HKT4)变量的作用域:局部变量和全局变量只有使用了export命令后,变量才可在子进程中起作用:$ux=unix$echo$ux/显示:unix$sh/进入子进程$echo$ux/显示:$exit/退出子进程$echo$ux/显示:unix$exportux$sh/进入子进程$echo$ux/显示:unix$exit5)环境变量的设置与取消在shell初始化文件中设定环境变量,方法是:–K-shell及B-shell中Variable_Name=ValueexportVariable_Name–C-shell中setenvVariable_Name=Value删除环境变量–K-shell及B-shell中:unsetVariable_Name–C-shell中:unsetenvVariable_Name6)标准变量Shell标准变量,在shell进程创建时自动赋值:7)位置变量Shell中命令行的参数可用单独的位置参数提取,它们是$1,$2,$3,…$9.考虑下列shell程序,其文件名为echoarg.sh:出现上述结果的原因是程序中有位置参数的引用$echoarg.shfirstsecondthird($0)$1$2$3其它特殊的shell变量:8)变量替换中的多值选择程序中若有以下语句:echo“TheCDPATHis$CDPATH”会显示:TheCDPATHis对未赋值变量的赋值方法:${var:-word}:若var有值且非空,取该值,否则取word,var不变;${var:=word}:若var有值且非空,取该值,否则取word,同时将word值赋给var${var:+word}:若var有值且非空,取word,否则var仍为空可将上列语句改为:echo“TheCDPATHis${CDPATH:-Undefined}”9)用命令替换变量指使用命令执行结果替换变量值,即用反引号完成命令替换。Test命令1)用于对文件的测试test-[dfrmxs]file其中:-dfile判文件存在且为目录文件-ffile判文件存在且为普通文件-rfile判文件存在且为可读文件-wfile判文件存在且为可写文件-xfile判文件存在且为可执行文件-sfile判文件存在且长度为非零例:test-d/home/usera&&echo“目录usera存在”test-d/home/usera||echo“目录usera不存在或无此目录”2)对字符串S的测试tests字符串S为非空串时返回真值test-zs字符串为空时返回真值tests1=s2字符串s1与s2相同时为真值3)对整数n进行测试testn1-eqn2整数n1和n2相等时为真值testn1-nen2整数n1和n2不相等时为真值testn1-ltn2整数n1小于n2时为真值testn1-len2整数n1小于等于n2时为真值testn1-gtn2整数n1大于n2时为真值testn1-gen2整数n1大于等于n2时为真值测试整数n时注意问题:x1=“005”x2=5test“$x1”=“$x2”echo$?系统显示:1测试结果为假,两者不同test“$x1”-eq“$x2”echo$?系统显示:0测试结果为真,两者相同条件控制语句例1:使用if及test完成测试命令行参数的个数.if[$#-lt3];thenecho“usage:$0arg1arg2arg3”>&2exit1fiecho“arg1:$1”echo“arg2:$2”echo“arg3:$3”运行:$ifparamcupmedal$ifparamcupmedaltrophy例2:将位置参数中的内容传递到系统命令中#!/bin/shfilename:test