Linux---shell条件语句及测试

Shell------条件语句及测试

一.文件测试

1.常用的测试操作符:

-d:测试是否为目录(directory)
-f:测试是否为文件(file)
-e:测试目录或者文件是否存在(exist)
-r:测试当前用户是否由权限读取(read)
-w:测试当前用户是否由权限写入(write)
-x:测试当前用户是否有权限执行(excute)

test命令测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值

2.文件测试的两种书写方式:

test 操作符 文件或目录

[ 操作符 文件或目录 ]

3.实例:

Linux---shell条件语句及测试

二.数值比较

常用的测试操作符:

-eq:等于(equal)
-ne:不等于(not equal)
-gt:大于(greater than)
-lt:小于(lesser or equal)
-le:小于或等于(lesser or equal)
-ge:大于或等于(greater or equal)

Linux---shell条件语句及测试

三.字符串比较:

1.常用的测试操作符:

=:字符串内容相同

!=:字符串内容不同

-z:字符串内容为空

2.使用格式:

[ 字符串1 = 字符串2 ] ;[ 字符串1 = 字符串2 ];[ -z 字符串 ]

3.使用脚本创建目录:

Linux---shell条件语句及测试

Linux---shell条件语句及测试

4.“i++“与”++i”,let命令:

Linux---shell条件语句及测试

i=i++,是先赋值,再计算

i=++i,是先计算,再赋值

四.逻辑测试

常用的测试操作符:

-a或&&:逻辑与,而且

-o或||:逻辑或,或者

!:逻辑否

使用格式为:

[ 表达式1 ] 操作符 [ 表达式2 ];命令1 操作符 命令2

五.if语句的结构

单分支结构:

if 条件测试操作

then

​ 命令序列

fi

双分支结构:

if 条件测试操作

then

​ 命令序列1

else

​ 命令序列2

fi

多分支结构:

if 条件测试操作1

then

​ 命令序列1

elif 条件测试操作2

then

​ 命令序列2

else

​ 命令序列3

fi

多分支嵌套结构:

实例:计算器脚本:

read -p “请输入第一个整数:” nb1
read -p “请输入运算方式:加(+),减(-),乘(x),除(/),余数(%):” fuhao
read -p “请输入第二个整数:” nb2
if [ $fuhao = “+” ]
then
number=expr $nb1 + $nb2
echo "结果:$number "

elif [ $fuhao = “-” ]
then
number=expr $nb1 - $nb2
echo "结果:$number "

elif [ $fuhao = “x” ]
then
number=expr $nb1 \* $nb2
echo "结果:$number "

elif [ $fuhao = “/” ]
then
number=expr $nb1 / $nb2
echo "结果:$number "

elif [ $fuhao = “%” ]
then
number=expr $nb1 % $nb2
echo "结果:$number "

else "输入错误 "
fi