shell脚本之条件语句
一、test命令
1、格式
测试表达式是否成立,若成功返回0,否则返回其他数值
格式1: test 条件表达式
格式2: [ 条件表达式 ]
二、文件测试
1、格式
操作符、文件名或者目录名
2、常用的测试操作符
-d∶ 测试是否为目录(Directory)
-e∶ 测试目录或文件是否存在(Exist)
-f∶ 测试是否为文件(File)
-r∶ 测试当前用户是否有权限读取(Read)
-w∶ 测试当前用户是否有权限写入(Write)
-x∶测试当前用户是否有权限执行(eXcute)
-L∶测试是否为软链接文件
3、实例操作
三、整数值比较
1、格式
[ 整数1 操作符 整数2 ]
2、常用的测试操作符
-eq∶ 等于(Equal) -ne∶ 不等于(Not Equal) -gt∶ 大于(Greater Than) -lt∶ 小于(Lesser Than) -le∶ 小于或等于(Lesser or Equal) -ge∶ 大于或等于(Greater or Equal)
3、实例操作
3.1结合逻辑与进行查询当前目录下的文件数目
3.2查看系统内存是否低于或者高于1024M,如果满足条件则提示
四、字符串比较
1、格式
[ 字符串1 = 字符串2 ] #判断是否相等 [ 字符串1 != 字符串2 ] #判断是否不等 [ -z 字符串 ] #是否空值 [ -n 字符串 ] # 字符集是否存在
2、常用的测试操作符
- =∶ 字符串内容相同
- !=∶ 字符串内容不同,!号表示相反的意思
- z∶字符串内容为空
3、实例操作
五、逻辑测试(三元运算符)
1、格式
格式1∶ [ 表达式1 ] 操作符 [ 表达式2 ]…
格式2∶ 命令1 操作符 命令2…
2、常用的测试操作符
- -a或&&∶ 逻辑与,"而且"的意思
- -o或||∶ 逻辑或,"或者"的意思
- !∶逻辑否
3、实例操作
六、if语句
1、单分支结构
如果只有一个判断式要进行,那么我们可以使用单分支的if语句
1.1格式
if [ 条件判断式 ]; then 当条件判断成立时,可以进行的命令工作内容 fi #这里将if反过来写,结束if语句的意思
1.2原理图
2、双分支结构
在同一个数据的判断中,如果该数据需要进行两种不同的判断,我们就需要双分支if语句了:
2.1格式
if [ 条件判断式 ]; then 当条件判断成立时,可以进行的命令工作内容 else 当条件判断不成立时,可以进行的命令工作内容 fi
2.3实例操作
七、case语句结构
1、格式
case 变量名称 in “第一个变量内容” 程序段 ;; “第二个变量内容” 程序段 ;; *) 不包含第一个变量内容与第二个变量内容的其他程序执行段 默认程序段 ;; esac
2、 实例操作一
#!/bin/bash read -p "请输入一个字符:" a
case "$a" in [0-9])
echo "你输入的是字母"
;;
[a-z]|[A-Z])
echo "你输入的是数字"
;;
*)
echo "你输入的是其他字符"
esac
八、浮点数的运算
bash不支持浮点数运算(小数运算),如果需要进行浮点数运算,则需要bc、awk的帮助
1、bc的基本用法
方法一:直接使用bc
方法二:在脚本中使用bc
2、awk的基本用法
awk是linux中处理文本的强大工具,或者说是一种专门处理字符串的语言,它有自己的编码格式。awk的强大之处还在于能生成强大的格式化报告。
awk的命令格式如下:
awk -F # -F相当于内置变量FS, 指定分割字符
九、交换变量
参加一个临时变量即可替换