1 / 75
文档名称:

shell脚本编程基础知识.pptx

格式:pptx   大小:239KB   页数:75页
下载后只包含 1 个 PPTX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

shell脚本编程基础知识.pptx

上传人:2623466021 2022/6/27 文件大小:239 KB

下载得到文件列表

shell脚本编程基础知识.pptx

文档介绍

文档介绍:主要内容和学习要求
掌握创立 shell 脚本的根本步骤
学会使用条件测试
掌握 if 条件构造与 case 选择构造
掌握 for 循环、while 循环和 until 循环构造
学会 shift 命令的使用
学会 shell行相应的任务。
Bash 中允许测试两种类型的条件: 命令成功或失败,表达式为真或假
任何一种测试中,都要有退出状态〔返回值〕,退出状态为 0 表示命令成功或表达式为真,非0 那么表示命令失败或表达式为假。
内置测试命令 test
通常用 test 命令来测试表达式的值
x=5; y=10
test $x -gt $y
echo $?
test 命令可以用 方括号 来代替
x=5; y=10
[ $x -gt $y ]
echo $?
表达式测试包括字符串测试、整数测试和文件测试。
测试表达式的值
方括号前后要留空格!
name=Tom
[ $name = [Tt]?? ]
echo $?
版本以上的 Bash 中可以用双方括号来测试表达式的值,此时可以使用通配符进展模式匹配。
测试表达式的值
[[ $name = [Tt]?? ]]
echo $?
字符串测试
[ -z str ]
如果字符串 str 长度为 0,返回真
[ -n str ]
如果字符串 str 长度不为 0,返回真
[ str1 = str2 ]
两字符串相等
[ str1 != str2 ]
两字符串不等
name=Tom; [ -z $name ]; echo $?
操作符两边必须留空格!
字符串测试
name2=Andy; [ $name = $name2 ] ; echo $?
整数测试,即比较大小
[ int1 -eq int2 ]
int1 等于 int2
[ int1 -ne int2 ]
int1 不等于 int2
[ int1 -gt int2 ]
int1 大于 int2
[ int1 -ge int2 ]
int1 大于或等于 int2
[ int1 -lt int2 ]
int1 小于 int2
[ int1 -le int2 ]
int1 小于或等于 int2
x=1; [ $x -eq 1 ]; echo $?
x=a; [ $x -eq 1 ]; echo $?
整数测试
操作符两边必须留空格!
X
整数测试也可以使用 let 命令或双圆括号
x=1; let "$x == 1"; echo $?
x=1; (($x+1>= 2 )); echo $?
只能用于整数测试!
整数测试
相应的操作符为:
== 、!= 、> 、>= 、< 、<=
例:
两种测试方法的区别
使用的操作符不同
let 和 双圆括号中可以使用算术表达式,而中括号不能
let 和 双圆括号中,操作符两边可以不留空格
逻辑测试
[ expr1 -a expr2 ]
逻辑与,都为真时,结果为真
[ expr1 -o expr2 ]
逻辑或,有一个为真时,结果为真
[ ! expr ]
逻辑非
x=1; name=Tom;
[ $x -eq 1 –a –n $name ]; echo $?
逻辑测试
注:不能随便添加括号
[ ( $x -eq 1 ) –a ( –n $name ) ]; echo $?
X
x=1; name=Tom;
[[ $x -eq 1 && $name = To? ]]; echo $?
[[ pattern1 && pattern2 ]]
逻辑与
[[ pattern1 || pattern2 ]]
逻辑或
[[ ! pattern ]]
逻辑非
可以使用模式的逻辑测试
逻辑测试
文件测试:文件是否存在,文件属性,访问权限等。
-f fname
fname 存在且是普通文件时,返回真 ( 即返回 0 )
-L fname
fname 存在且是链接文件时,返回真
-d fname
fname 存在且是一个目录时,返回真
-e fname
fname(文件或目录)存在时,返回真
-s fname
fname 存在且大小大于 0 时,返回真
-r fname
fname(文件或目录)存在且可读时,返回真
-w fname
fname(文件或目录)存在且可写时,返回真
-x fname
fname(文件或目录)存在且可执行时,返回真
常见的文件测试操作符
更多文件测试符参见 test 的在线帮助
man test
文件测试
检查空值
[ "$name" = "" ]
[ ! "$