Linux7PPT教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[ \( "$a" -ge 0 \) -a \( "$b" -le 100 \) ]
❖ 逻辑表达式中的条件测试运算符优先级高于“!” 运算符,“!” 运算符的优 先级高于“ -a”运算符,“-a”运算符高于 “-o”,而且圆括号( )高于 “-a”
2020/12/10
10
5.特殊条件测试 ❖ (1) :表示不做任何事情,其退出值为0。 ❖ (2)true 表示总为真,其退出值总是0。 ❖ (3)false 表示总为假,其退出值是255。
2020/12/10
11
4.9.3 case语句
case语句允许进行多重条件选择。其一般语法形式是:
case 字符串 in 模式字符串1) 命令
… 命令;; 模式字符串2) 命令
… 命令;;
… 模式字符串n) 命令
… 命令;;
esac
2020/12/10
12
在使用case语句时应注意:
❖ ⑴ 每个模式字符串后面可有一条或多条命令,其 最后一条命令必须以两个分号(即;;)结束。
第7讲 Linux shell3
2020/12/10
1
主要内容
❖ 控制结构
If语句 条件测试 case语句 while语句 until语句 for语句 break命令和continue命令 exit命令 select语句
2020/12/10
2
4.9 控制结构
4.9.1 if语句
2.有关字符串方面的测试
参数
功能
-z s1
如果字符串s1的长度为0,则测试条件为真。
-n s1 s1
s1 = s2
s1 != s2 s1 < s2
如果字符串s1的长度大于0,则测试条件为真。 如果字符串s1不是空字符串,则测试条件为真。 如果s1等于s2,则测试条件为真。“=”也可以用 “==” 代替。在“=”前后应有空格。
❖ ⑵模式字符串中可以使用通配符
❖ ⑶ 如果一个模式字符串中包含多个模式,那么各 模式之间应以竖线(|)隔开,表示各模式是“或” 的关系,即只要给定字符串与其中一个模式相配, 就会执行其后的命令表
真时,结果才为真。例如,
[ - f "$myfile" - a - r "myfile" ]
❖ - o 逻辑或( OR ),它放在两个逻辑表达式中间,其中只要有一个表达 式为真,结果就为真。例如,
[ "$a" -ge 0 -o "$b" -le 100 ]
❖ (表达式) 圆括号,它可以把一个逻辑表达式括起来,使之成为一个整 体,优先得到运算。例如,
n1 -lt n2
如果n1小于n2,则测试条件为真
n1 -le n2
如果n1小于或等于n2,则测试条件为真
n1 -gt n2
如果n1大于n2,则测试条件为真
n1 -ge n2
如果n1大于或等于n2,则测试条件为真
2020/12/10
9
4.逻辑运算符 上述测试条件可以在if 语句或循环语句中单个使用,也可以通过逻辑运算符
❖ if语句用于条件控制结构中,其一般格式为: if 测试条件 then 命令1 else 命令2
fi ❖ 其中,if、then、else和fi是关键字。 例如:
if test -f "$1"
then echo "$1 is an ordinary file . "
else echo "$1 is not an ordinary file . "
test -f "$1"
❖ 也完全可写成:[ -f "$1" ]
❖ 第三种形式是: [[条件表达式]]
❖ test命令可以和多种系统运算符一起使用。这些运算符可以 分为四类:文件测试运算符、字符串测试运算符、数值测试 运算符和逻辑运算符。
2020/12/10
6
1.有关文件方面的测试
参数 -r 文件名 -w 文件名 -x 文件名 -f 文件名 -d 文件名 -p 文件名 -b 文件名 -c 文件名 -s 文件名 20-2t0/1文2/1件0 描述字
把它们组合起来使用。可以在测试语句中使用的逻辑运算符有:
❖ ! 逻辑非( NOT ),它放在任意逻辑表达式之前,使原来为真的表达式 变为假,使原来为假的变为真。例如,
[ ! -r $1 ] , ! test -r “$1”等。 ❖ - a 逻辑与( AND ),它放在两个逻辑表达式中间,仅当两个表达式都为
2020/12/10
4
❖ if的语句的更一般形式是: if 命令表1 then 命令表2 else 命令表3 fi
2020/12/10
5
4.9.2 条件测试
❖ 条件测试有三种常用形式:一种是用test 命令,如上所示。 另一种是用一对方括号将测试条件括起来。这两种形式是完 全等价的。例如,测试位置参数$1是否是已存在的普通文件, 可写为:
fi 2020/12/10
3
❖ if语句中else部分可以缺省。例如, if test -f "$1" then echo "$1 is an ordinary file . " fi
❖ if 语句的else部分还可以是else—if结构,则用关键字“elif”代 替“else if”。例如, if test - f "$1" then pr $1 elif test - d "$1" then ( cd $1 ; pr * ) else echo "$1 is neither a file nor a directory . " fi
如果s1不等于s2,则测试条件为真。 如果按字典顺序s1在s2之前,则测试条件为真
s1 > s2
如果按字典顺序s1在s2之后,则测试条件为真
2020/12/10
8
3.有关数值方面的测试
参数
功能
n1 -eq n2
如果整数n1等于n2,则测试条件为真
n1 -ne n2
Fra Baidu bibliotek
如果整数n1不等于n2,则测试条件为真
功能 若文件存在并且是用户可读的,则测试条件为真 若文件存在并且是用户可写的,则测试条件为真 若文件存在并且是用户可执行的,则测试条件为真 若文件存在并且是普通文件,则测试条件为真 若文件存在并且是目录文件,则测试条件为真 若文件存在并且是命名的FIFO文件,则测试条件为真 若文件存在并且是块设备文件,则测试条件为真 若文件存在并且是字符设备文件,则测试条件为真 若文件存在并且文件的长度大于0,则测试条件为真 若文件被打开且其文件描述字是与终端设备相关的, 7 则测试条件为真。默认的“文件描述字”是1
❖ 逻辑表达式中的条件测试运算符优先级高于“!” 运算符,“!” 运算符的优 先级高于“ -a”运算符,“-a”运算符高于 “-o”,而且圆括号( )高于 “-a”
2020/12/10
10
5.特殊条件测试 ❖ (1) :表示不做任何事情,其退出值为0。 ❖ (2)true 表示总为真,其退出值总是0。 ❖ (3)false 表示总为假,其退出值是255。
2020/12/10
11
4.9.3 case语句
case语句允许进行多重条件选择。其一般语法形式是:
case 字符串 in 模式字符串1) 命令
… 命令;; 模式字符串2) 命令
… 命令;;
… 模式字符串n) 命令
… 命令;;
esac
2020/12/10
12
在使用case语句时应注意:
❖ ⑴ 每个模式字符串后面可有一条或多条命令,其 最后一条命令必须以两个分号(即;;)结束。
第7讲 Linux shell3
2020/12/10
1
主要内容
❖ 控制结构
If语句 条件测试 case语句 while语句 until语句 for语句 break命令和continue命令 exit命令 select语句
2020/12/10
2
4.9 控制结构
4.9.1 if语句
2.有关字符串方面的测试
参数
功能
-z s1
如果字符串s1的长度为0,则测试条件为真。
-n s1 s1
s1 = s2
s1 != s2 s1 < s2
如果字符串s1的长度大于0,则测试条件为真。 如果字符串s1不是空字符串,则测试条件为真。 如果s1等于s2,则测试条件为真。“=”也可以用 “==” 代替。在“=”前后应有空格。
❖ ⑵模式字符串中可以使用通配符
❖ ⑶ 如果一个模式字符串中包含多个模式,那么各 模式之间应以竖线(|)隔开,表示各模式是“或” 的关系,即只要给定字符串与其中一个模式相配, 就会执行其后的命令表
真时,结果才为真。例如,
[ - f "$myfile" - a - r "myfile" ]
❖ - o 逻辑或( OR ),它放在两个逻辑表达式中间,其中只要有一个表达 式为真,结果就为真。例如,
[ "$a" -ge 0 -o "$b" -le 100 ]
❖ (表达式) 圆括号,它可以把一个逻辑表达式括起来,使之成为一个整 体,优先得到运算。例如,
n1 -lt n2
如果n1小于n2,则测试条件为真
n1 -le n2
如果n1小于或等于n2,则测试条件为真
n1 -gt n2
如果n1大于n2,则测试条件为真
n1 -ge n2
如果n1大于或等于n2,则测试条件为真
2020/12/10
9
4.逻辑运算符 上述测试条件可以在if 语句或循环语句中单个使用,也可以通过逻辑运算符
❖ if语句用于条件控制结构中,其一般格式为: if 测试条件 then 命令1 else 命令2
fi ❖ 其中,if、then、else和fi是关键字。 例如:
if test -f "$1"
then echo "$1 is an ordinary file . "
else echo "$1 is not an ordinary file . "
test -f "$1"
❖ 也完全可写成:[ -f "$1" ]
❖ 第三种形式是: [[条件表达式]]
❖ test命令可以和多种系统运算符一起使用。这些运算符可以 分为四类:文件测试运算符、字符串测试运算符、数值测试 运算符和逻辑运算符。
2020/12/10
6
1.有关文件方面的测试
参数 -r 文件名 -w 文件名 -x 文件名 -f 文件名 -d 文件名 -p 文件名 -b 文件名 -c 文件名 -s 文件名 20-2t0/1文2/1件0 描述字
把它们组合起来使用。可以在测试语句中使用的逻辑运算符有:
❖ ! 逻辑非( NOT ),它放在任意逻辑表达式之前,使原来为真的表达式 变为假,使原来为假的变为真。例如,
[ ! -r $1 ] , ! test -r “$1”等。 ❖ - a 逻辑与( AND ),它放在两个逻辑表达式中间,仅当两个表达式都为
2020/12/10
4
❖ if的语句的更一般形式是: if 命令表1 then 命令表2 else 命令表3 fi
2020/12/10
5
4.9.2 条件测试
❖ 条件测试有三种常用形式:一种是用test 命令,如上所示。 另一种是用一对方括号将测试条件括起来。这两种形式是完 全等价的。例如,测试位置参数$1是否是已存在的普通文件, 可写为:
fi 2020/12/10
3
❖ if语句中else部分可以缺省。例如, if test -f "$1" then echo "$1 is an ordinary file . " fi
❖ if 语句的else部分还可以是else—if结构,则用关键字“elif”代 替“else if”。例如, if test - f "$1" then pr $1 elif test - d "$1" then ( cd $1 ; pr * ) else echo "$1 is neither a file nor a directory . " fi
如果s1不等于s2,则测试条件为真。 如果按字典顺序s1在s2之前,则测试条件为真
s1 > s2
如果按字典顺序s1在s2之后,则测试条件为真
2020/12/10
8
3.有关数值方面的测试
参数
功能
n1 -eq n2
如果整数n1等于n2,则测试条件为真
n1 -ne n2
Fra Baidu bibliotek
如果整数n1不等于n2,则测试条件为真
功能 若文件存在并且是用户可读的,则测试条件为真 若文件存在并且是用户可写的,则测试条件为真 若文件存在并且是用户可执行的,则测试条件为真 若文件存在并且是普通文件,则测试条件为真 若文件存在并且是目录文件,则测试条件为真 若文件存在并且是命名的FIFO文件,则测试条件为真 若文件存在并且是块设备文件,则测试条件为真 若文件存在并且是字符设备文件,则测试条件为真 若文件存在并且文件的长度大于0,则测试条件为真 若文件被打开且其文件描述字是与终端设备相关的, 7 则测试条件为真。默认的“文件描述字”是1