测试语句 : test 语句
test string1 =或 != string2
注意 : 1、 获取测试结果 echo $? 0 : 成立 ; 1 : 不成立
2、在比较的时候, = 或!= 左右两端必须有空格(至少要有一个空格)
如果是一条test语句, 表示'与'使用 -a ; 表示'或' 使用-o
如果是两条test语句, 表示'与'使用&& ; 表示'或' 使用 ||
整数 : -eq(等于) -ne(不等于) -gt(大于) -ge(大于等于) -lt(小于) -le(小于等于)
文件 :
-e : 测试文件是否存在
-d : 测试文件是否存在并且为目录文件
-f : 测试文件是否存在并且为普通文件
-r :测试当前登录用户对该文件是否拥有读权限
-w :测试当前登录用户对该文件是否拥有写权限
-x :测试当前登录用户对该文件是否拥有执行权限
结构性语句 :
if 语句
then
命令列表
fi
if 语句1
then
命令列表1
else if 语句2
then
命令列表2
else if 语句3
then
命令列表3
fi
fi
fi
注意: if 和 fi 的匹配 ;
上面有几个if , 下面代码中就要有几个fi对应匹配
case 变量的引用 in
模式1 ) # 支持 模式1 | 模式2 | 模式3) 形式
命令列表1
;; #作用与C语言中的break相同,但是不能够省略;只有语句最末尾的可以省略
模式2)
命令列表2
;;
模式3)
命令列表3
;;
*) # 该模式可以出现在任意的位置,但是会影响执行结果
命令列表n
;;
esac
for 循环语句 : 事先明确循环的执行次数, 使用for循环语句
for 变量名 in 单词表
do
命令列表
done
说明 : 变量从单词表中拿取单词, 每拿取一个单词, 循环执行一次
直到单词表中的所有单词被取完,循环执行结束;
for 变量名
do
命令列表
done
说明: 如果没有 in 单词表部分 ; 单词表需要通过命令行传入
(即循环的执行次数与命令行传入的参数个数有关)
while 命令或者表达式
do
命令列表
done
说明: while 后面跟的命令或者表达式成立,执行循环体内的命令
不成立, 直接跳过while循环语句
while :
do
命令列表
done
说明 : 死循环 , 相当于C语言中的while(1)
break ; 跳出当前层循环
break n ; 跳出n层循环
continue ; 结束本次循环, 继续下一次循环
continue n ; 结束n层循环的本次循环, 从循环开始的位置继续执行
test string1 =或 != string2
可以使用 [ ] 代替test语句; [ string1 = 或!= string2 ]
注意 [的右端至少有一个空格, ]的左端至少有一个空格
注意 : 1、 获取测试结果 echo $? 0 : 成立 ; 1 : 不成立
2、在比较的时候, = 或!= 左右两端必须有空格(至少要有一个空格)
如果是一条test语句, 表示'与'使用 -a ; 表示'或' 使用-o
如果是两条test语句, 表示'与'使用&& ; 表示'或' 使用 ||
整数 : -eq(等于) -ne(不等于) -gt(大于) -ge(大于等于) -lt(小于) -le(小于等于)
文件 :
-e : 测试文件是否存在
-d : 测试文件是否存在并且为目录文件
-f : 测试文件是否存在并且为普通文件
-r :测试当前登录用户对该文件是否拥有读权限
-w :测试当前登录用户对该文件是否拥有写权限
-x :测试当前登录用户对该文件是否拥有执行权限
结构性语句 :
if 语句
then
命令列表
fi
if 语句1
then
命令列表1
else if 语句2
then
命令列表2
else if 语句3
then
命令列表3
fi
fi
fi
注意: if 和 fi 的匹配 ;
上面有几个if , 下面代码中就要有几个fi对应匹配
case 变量的引用 in
模式1 ) # 支持 模式1 | 模式2 | 模式3) 形式
命令列表1
;; #作用与C语言中的break相同,但是不能够省略;只有语句最末尾的可以省略
模式2)
命令列表2
;;
模式3)
命令列表3
;;
*) # 该模式可以出现在任意的位置,但是会影响执行结果
命令列表n
;;
esac
for 循环语句 : 事先明确循环的执行次数, 使用for循环语句
for 变量名 in 单词表
do
命令列表
done
说明 : 变量从单词表中拿取单词, 每拿取一个单词, 循环执行一次
直到单词表中的所有单词被取完,循环执行结束;
for 变量名
do
命令列表
done
说明: 如果没有 in 单词表部分 ; 单词表需要通过命令行传入
(即循环的执行次数与命令行传入的参数个数有关)
while 命令或者表达式
do
命令列表
done
说明: while 后面跟的命令或者表达式成立,执行循环体内的命令
不成立, 直接跳过while循环语句
while :
do
命令列表
done
说明 : 死循环 , 相当于C语言中的while(1)
break ; 跳出当前层循环
break n ; 跳出n层循环
continue ; 结束本次循环, 继续下一次循环
continue n ; 结束n层循环的本次循环, 从循环开始的位置继续执行