条件判断
一、判断文件类型
1)、参数选项:
-d :判断该文件是否存在以及是否为目录,是目录为true
-e :判断该文件是否存在,存在为true
-f :判断该文件是否存在以及是否为普通文件,普通文件为true
… :还有其他参数判断块设备文件、管道文件这些
2)、用法:
1、第一种:
test 选项参数 [目录或文件路径] ($?表示回去上一条命令的执行是否正确,0表示正确)
2、第二种:
[ 选项参数 文件或目录路径]
二、文件之间的判断
1)、语法:文件1 选项参数 文件2
1、选项参数:
-nt(-ot) :文件1修改时间是否比2新(旧)
-ef :两个文件的Inode号是否一致,判断是否为同一文件
三、文件权限判断
1)、语法 :选项参数 文件名
2)、选项参数:
-r :判断判断文件是否存在以及是否有r权限
-w(-x) :w权限(x权限)
…… :还有其他权限,例如判断SUID权限这些
四、字符串判断
1)、语法:选项参数 字符串
2)、选项参数:
-z :判断是否为空(空为true)
-n :判断是否非空
== :判断两个字符串是否相等
!= :不等
五、整数之间比较
1)、语法:整数1 选项参数 整数2
2)、选项参数:
-eq :相等(为true)、-ne :不等、-gt :1大于2、-lt :1小于2、-ge :1大于等于2、-le :1小于等于2
六、逻辑判断
1)、语法:判断条件1 选项参数判断条件2
2)、选项参数:
-a :逻辑与
-o :或
! :非(取反),直接放在一个判断之前
流程控制
一、if
1)、单个if判断
1、定义语法:
定义方式一:
if [ 表达式 ];then
处理逻辑
fi
定义方式二:
if [ 表达式 ]
then 处理逻辑
fi
2、案例:(注意一些空格的处理)
2)、多个else (三个及以上多了 elif)
二、case
1)、语法:
case $变量名 in
“value1”)
处理逻辑1
;;
“value2”)
处理逻辑2
;;
*)
不再以上定义的处理逻辑
;;
esac
2)、案例:
三、for
1)、语法:
1、方式1:
for 变量名 in 值1 值2 …
do
处理逻辑
done
2、案例
变量定义一般别乱写空格
2)、语法:
1、方式2
for (( 初始值;循环控制条件;变量变化 ))
do
处理逻辑
done
2、案例:
3)、语法:
1、方式3 (方式1的特殊形式):
for 变量名 in $(shell命令)
do
处理逻辑
done
2、案例:
四、while/util
while条件判断为true则再次循环,until是条件判断为false则再次循环
1)、语法:
while [ 条件判断式 ]
do
处理逻辑
done
2)、案例: