Shell程序设计PPT推荐.ppt
- 文档编号:14325564
- 上传时间:2022-10-22
- 格式:PPT
- 页数:57
- 大小:240.50KB
Shell程序设计PPT推荐.ppt
《Shell程序设计PPT推荐.ppt》由会员分享,可在线阅读,更多相关《Shell程序设计PPT推荐.ppt(57页珍藏版)》请在冰豆网上搜索。
文件名通配符、引号、输入输出重定向符、管道线符、注释符、后台执行符、逻辑符、命令组合符、转义符等。
Shell在读入命令行后,要对命令行扫描,找出元字符并进行相应的替换,以确定要执行的程序和它的参数及执行方式等。
通配符,通配符用于描述命令的文件名参数的模式:
*匹配任何字符串,包括空字符串;
?
匹配任何单个字符;
匹配方括号内列出的某个单个字符,字符间用逗号分隔;
-指定匹配的字符范围!
指定不匹配的字符注意:
隐含文件的文件名的“.”前缀不与任何通配符匹配,必须显式指定。
通配符匹配举例,a-d,x,y匹配字符a、b、c、d、x、y;
z*匹配以字符z开始的字符串;
x?
y匹配以x开始、y结束、中间为任何单个字符的字符串;
!
Z匹配不为Z的单个字符。
a-f*匹配字符a到字符f开头的字符串;
rc?
.d匹配以rc开始、以.d结束、中间为任何单个字符的字符串;
*!
o匹配不以o结尾的字符串。
输入输出重定向与管道符,标准输出重定向2标准错误输出重定向&
标准输出与标准错误输出合并重定向2&
1将标准错误输出归并到标准输出流中1&
2将标准输出归并到标准错误输出流中标准附加输出重定向here文档重定向|管道,例1:
将输入改为infile,输出改为outfile,错误输出改为errfile文件。
myprocoutfile2errfileout2&
1等价于myprog&
out例3:
将标准输出并入错误输出流。
myprog1&
2避免输出被管道改向例4:
在.bash_profile文件的尾部添加一行。
echoPATH=$PATH:
.bash_profile例5:
将本行命令之后到字符串“End”之前的文本作为本命令的标准输入。
sortEnd,命令执行控制符,顺序执行“;
”:
命令1;
命令2;
命令3依次执行多个命令。
逻辑与执行“&
命令1&
命令2若命令1执行成功则执行命令2;
否则不执行命令2。
例:
cpex1ex2&
rmex1逻辑或执行“|”:
命令1|命令2若命令1执行成功则不执行命令2;
否则继续执行命令2。
cpex1ex2|catex1后台执行“&
命令&
在后台执行命令。
命令组合符,将多个命令组合在一起,用一个子Shell进程来执行。
组合的目的是对这些命令统一进行某种操作,如管道、后台运行、输入输出重定向等。
组合形式:
(命令;
命令;
)例1:
(sleep300;
echoTeaisready)catfile)mydoc将两命令的输出送到mydoc。
命令替换符,当一个字符串被括在反撇号“”中时,该字符串将被Shell作为命令解释执行,用命令的执行结果替换字符串。
echoTodayisdateTodayis三1月2917:
51:
56CST2014,其它元字符,#:
注释符,本行位于其后的内容被忽略。
echohello#sayhellohello脚本第1行开头的#!
Shell路径名表示所使用的Shell。
如:
#!
/bin/bash。
$:
变量引用符。
见10.3节。
空格:
分隔符,分隔命令名、选项和参数。
元字符的引用,当需要引用元字符的原始含义,而不是它的特殊含义时,就必须对它进行转义,消除其特殊含义。
常用的方法有3种,分别是转义符、单引号和双引号。
转义符()的作用:
消除单个元字符的特殊含义,即跟在转义符后面的单个字符将按字符本身的实际含义解释。
echo*,双引号()的作用:
消除被括在双引号中的大部分元字符的特殊含义,不能消除的字符有:
$、。
echoDontdothat!
Dontdothat!
单引号()的作用:
消除被括在单引号中的所有元字符(除外)的特殊含义,即单引号表示内容原样不动。
echoTheprompteris$Theprompteris$,10.3Shell变量,Shell是基于字符串的程序设计语言,Shell变量只能存储字符串。
因此只有字符串和字符串数组这两类型的变量。
变量的定义与赋值,变量的定义与赋值,3种方法:
用赋值命令,格式:
变量名=字符串注意:
赋值号“=”两边不能有空格。
用read命令接收键盘输入,赋给变量。
格式:
read变量名1变量名2在for命令中定义循环控制变量。
变量的名字必须以字母或下划线开头,可以包括字母、数字和下划线。
变量的引用,引用变量即是求出变量的值(字符串),替换在发生引用的位置。
引用变量的格式:
$变量名或$变量名注意:
引用未定义的变量将得到一个空字符串。
若变量名后紧随有字母、数字或下划线,则应将变量名用括起。
用echo命令可以显示变量的内容。
例,$dir=/home/cherry/cprogram$echo$dir/home/cherry/cprogram$cd$dir/hello$pwd/home/cherry/cprogram/hello$echo$dir_1(空串)$echo$dir_1/home/cherry/cprogram_1,变量的作用域,变量的作用域:
变量可以被引用的范围。
本地变量:
仅在定义它的Shell中才能引用的变量。
导出变量:
可被任何子Shell引用的变量。
用export命令可将本地定义的变量变为导出变量,格式:
export变量名子Shell可以引用父Shell的所有导出变量,但无法改变导出变量的值。
若在子Shell中改变导出变量的值,实际是对导出变量的副本进行更改。
例,name=Zhang;
exportnametitle=Dr.;
exporttitlegreeting=Goodmorningcatvar_testname=Wangecho$greeting$title$name!
bashvar_testDr.Wang!
echo$greeting$title$name!
GoodmorningDr.Zhang!
变量的分类,Shell的变量可分为:
用户变量:
用户为实现某种应用目的而定义的变量。
环境变量:
由系统预定义的变量,用于为Shell提供有关运行环境的信息。
特殊变量:
由Shell自定义的变量,用于记录Shell当前的运行状态的一些信息。
环境变量,Shell执行时需要一些基本信息。
这些信息以变量的形式提供,称为环境变量。
环境变量的全体构成了Shell的执行环境。
常用的环境变量,LOGNAME/USER用户登录名;
HOSTNAME主机名;
MAIL用户的邮箱;
HOME用户的主目录;
PATH命令的搜索路径;
PS1主命令提示符,默认为“$”;
TERM使用的终端类型;
DISPLAYX显示屏幕;
PWD当前工作目录;
LANG使用的语言。
特殊变量,Shell中有一组特殊的变量,其变量名和变量值只有Shell自己可以设置,用户只能引用。
$#命令行中参数的个数。
$*命令行中所有参数组成的字符串。
$命令行中各个参数组成的字符串。
$i位置变量。
$?
命令的退出状态。
$当前进程的进程号。
参数变量,$#、$*、$、$i称为参数变量,用于记录有关命令参数的信息。
参数变量是Shell在解析命令行时定义好的,在命令中可直接引用。
设命令为myprog-s“Howareyou!
”joejean,则以下参数变量的值为:
$#:
4$*:
-sHowareyou!
joejean“S*”:
“-sHowareyou!
joejean”$:
joejean“$”:
“-s”“Howareyou!
”“joe”“jean”,位置变量,位置变量是按位置描述命令参数的一组变量。
当一个命令被执行时,Shell隐含地为它建立起一系列的位置变量,分别为$0,$1,$2,$9,$10,。
$0为命令名本身,$i为命令的第i个参数。
myprog-s“Howareyou!
”joejean$0$1$2$3$4,set命令,用set命令可以对参数变量强制赋值。
setstring1string2string3参数说明:
stringi为赋给位置变量i的值。
注意:
不能对$0赋值。
不带参数时显示全部变量的值。
$date三10月2812:
08:
05CST1998$setdate$echo$6$2$3$1199810月28三,shift命令,shift命令的功能是将位置变量与命令行参数的对应关系右移一位(或指定的位数)。
shift位移量例:
命令行:
proc1ABCDEF原位置变量:
$0$1$2$3$4$5$6执行shift后:
$0$1$2$3$4$5,其他特殊变量,每个命令在执行结束退出时都要返回给父进程Shell一个退出状态值。
通常的约定是,程序成功结束时返回0状态值;
程序出错时返回非0的状态值。
最近一次命令执行后的退出状态:
执行成功时$?
的值为0,否则为非0。
rmmyfile若删除成功则$?
的值为0,否则为1。
echo$0,$bash,15452,10.4Shell表达式,Shell语言支持两类表达式计算,一是用于数值计算的算术表达式,其结果是数值;
另一种是用于进行条件测试或判断的逻辑表达式,其结果是真假值。
数字运算表达式,Shell利用expr命令进行数字表达式计算。
expr命令格式:
expr数值1运算符数值2expr支持以下运算符:
数字运算:
+、-、*、/、%逻辑运算:
&
、|比较运算:
=、=、!
=、=、=expr的计算对象只能是整数数字字符串或变量。
expr的输出结果:
数字运算输出结果数值;
运算当两个数值都非0时输出第1个数值,否则输出0;
|运算当第1个数值非0时输出第1个数,否则输出第2个数;
比较运算为真时输出1,否则输出0。
expr的退出状态$?
:
算术运算返回状态0;
逻辑和比较运算结果为真(非0)时返回状态0,为假(0)时返回状态1;
出错时返回状态2。
例,命令表达式输出$?
$a=13$expr“$a”-4+2#13-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Shell 程序设计