条件测试
格式    test condition    或    [ condition ]    使用方括号时,要注意在条件两边加上空格,如果有操作符,运算符之间也必须有空格
测试状态:测试的结果可以用$?的值来判断,0表示成功,其他为失败
--文件状态测试
-e  判断文件是否存在
-d 判断目录是否存在 -f 正规文件(是不是普通文件) -L 符号链接 -r 可读 -s 文件长度大于0、非空 -w 可写 -u 文件有suid位设置 -x 可执行 --逻辑测试 -a 逻辑与,操作符两边均为真,结果为真,否则为假 -o 逻辑或,操作符两边一边为真,结果为真,否则为假 ! 逻辑否,条件为假,结果为真 --字符串测试 = 两个字符串相等 != 两个字符串不等 -z 字符串为空 -n 字符串非空 --数字测试 -eq 两个数字相等 -ge 数字a大于等于数字b -gt 数字a大于数字b -le 数字a小于等于数字b -lt 数字a小于数字b -ne 数字a不等于数字b

Linux shell循环_字符串

 

expr
--数字运算
--加法运算:expr 10 + 10
--减法运算:expr 20 - 10
--加法运算:expr 10 / 5
--乘法运算:expr 10 \* 5
--注意:expr 10 + 10 ;10(空格)+10(空格),数字与运算符之间必须使用空格
--如果是非数字参加运算会报错误,利用此点可以用来测试数字格式。
--例子:expr 10 + a 查看是否报错,测试a是否是数字
if then else 语句
语法1
if 条件
then 命令
else 命令
fi
注意if语句必须以fi终止


语法2
if 条件1;(";"可以加也可以不加,规则是加上)
then 命令1
elif 条件2
then 命令2
else 命令3
fi

注意:if then else命令,if和then如果在同一行上,必须加";"分号,不在同一行上,可以不加

Linux shell循环_取值_02

Linux shell循环_操作符_03

case
case多选择语句格式
casein
模式1)
    命令1
    ;;
模式2)
    命令2
    ;;
esac
注意点:
①:case取值后面必须为单词in:每一模式必须以右括号结束
②:取值可以为变量或常数。匹配发现取值符合某一模式后,气候的所有命令开始执行,直到;;
③:模式匹配:*表示任意字符;?表示任意单字符;[...]表示范围中任意字符
for循环
语法格式
for 变量名 in 列表
do
    命令1
    命令2
done
1.当变量值在列表里,for循环即依次执行所有命令,使用变量名访问列表中取值
2.命令可以为任何有效的shell命令和语句。变量名为任意单词
3.in列表用法是可选择,如果不用它,for循环使用命令行的位置参数
4.in列表可以包含替换、字符串和文件名

Linux shell循环_取值_04

Linux shell循环_for循环_05

Linux shell循环_变量名_06

Linux shell循环_取值_07

Linux shell循环_操作符_08

Linux shell循环_操作符_09

until循环
语法格式
until    条件
do
    命令1
    命令2
done
条件可以为任意测试条件,测试发生在循环末尾,因此循环至少执行一次
while循环
语法格式
while 命令(可以是一个命令也可以是多个)
do
    命令1
    命令2
done
注意:在while和do之间虽然通常是一个命令,但可以放几个命令。
如果whil和do之间一个命令都没有必须加上":"

 Linux shell循环_变量名_10

Linux shell循环_字符串_11

Linux shell循环_字符串_12

break [n]
--退出循环
--如果是在一个嵌入循环里,可以指定n来跳出循环个数

continue
--跳出本次循环(不会跳出循环,跟C语言相同)