Linux系统shell脚本条件测试、比较、if和case语句

目录

一、条件测试

(一)测试方法

1.test

2.[ ]

3.[[  ]]

二、比较

(一)数值比较

1.比较符号

2.比较方式

(二)字符串比较

1.比较符号

2.比较方式

三、逻辑测试(短路运算)

(一)短路与

1.定义

2.语法

(二)短路或

1.定义

2.语法

四、if和case语句

(一)if语句

1.单分支

2.双分支

3.多分支

4.示例

(二)case语句

1.格式(多分支)

2.示例


一、条件测试

(一)测试方法

1.test

    test  [选项]  对象  

    echo $?            判断上条命令执行结果是否正确

    0(非0)          输出0则判定上条命令执行结果正确(输出非0则判定上条命令执行结果不正确)

选项作用
-d测试是否为文件夹
-f测试是否为普通文件
-e测试文件或目录是否存在
-a测试文件或目录是否存在,不建议使用此选项,不能用取反!=
-L测试是否为软连接文件
-r判断当前用户是否有读权限,根据实际情况返回结果,
-w判断当前用户是否有写权限,根据实际情况返回结果,
-x

判断当前用户是否有可执行权限,根据实际情况返回结果,root账户时其他用户有执行权限root账户也有,若其他账户没有执行权限则root也没有。

2.[ ]

方括号相当于test

[ -e /etc/fstab ]  就相当于  test -e /etc/fstab ,注意括号内左右两边的空格,不能少

3.[[  ]]

双括号相当于加强版[ ],可以支持正则表达式和通配符

二、比较

(一)数值比较

1.比较符号

符号作用
 -eq   比较第一个正整数是否等于(equal  = )第二个正整数
-ne比较第一个正整数不等于(not equal   != )第二个正整数
-gt比较第一个正整数是否大于(Greate than  > )第二个正整数
-lt 比较第一个正整数是否小于(Lesser than < )第二个正整数
-ge比较第一个正整数是否大于等于(Greate or equal  >= )第二个正整数
-le比较第一个正整数是否小于等于(Lesser or  equal <= )第二个正整数

2.比较方式

用上述三种测试方法皆可比较

(二)字符串比较

1.比较符号

符号作用
 =   比较第一个字符串是否等于(equal  = )第二个字符串
!=比较第一个字符串不等于(not equal   != )第二个字符串
-z测试字符串是否为空
-n测试字符串是否存在 

2.比较方式

a=1  b=2           给a和b赋值

[ $a = $b ]         比较a和b的值

echo $?            判断上条命令执行结果是否正确

0(非0)          输出0则判定上条命令执行结果正确(输出非0则判定上条命令执行结果不正确)

三、逻辑测试(短路运算)

(一)短路与

1.定义

全真才为真,一假即为假,整个语句为整体,全部为真,整体才是真

2.语法

cmd1 && cmd2

(二)短路或

1.定义

一真即为真

2.语法

cmd1 || cmd2

前面cmd1或cmd1为真则整个表达式为真,前面表达式为假,或命令为假,才会执行后面的表达式2或命令2 。一真则为真。

四、if和case语句

(一)if语句

1.单分支

if   [条件判断]

then   (条件成立则走then)

[执行命令] 

fi   (if结束语句)

2.双分支

if   [条件判断]

then   (条件成立则走then)

[执行命令] 

else    (所有条件不成立则走else)

[执行命令] 

fi   (if结束语句)

3.多分支

if   [条件判断]

then   (条件1成立则走then)

[执行命令] 

elif  [条件判断2 ]    (可添加多个elif )

then (条件2成立则走then)

[执行命令] 

else    (所有条件不成立则走else)

[执行命令] 

fi   (if结束语句)

4.示例

       编写一个成绩脚本,使得学生输入分数判断自己的成绩是优秀(90-100)、良好(70-89)、及格(60-69)、不及格,罚抄10遍(小于60)

(二)case语句

1.格式(多分支)

case   变量引用     in

PAT1)    符合条件1执行分支1的命令,PAT1可以使用通配符

分支1命令

;;   每个分支结束的固定格式

PAT2)    符合条件1执行分支2的命令,PAT2可以使用通配符

分支2命令

;;   每个分支结束的固定格式,可以有多个分支

*) 不符合其他任意分支的默认分支

默认分支命令

;; 分支结束的固定格式

esac   case语句结束标志

2.示例

编写一个系统工具箱的脚本,使得用户实现以下操作

         1.查看磁盘信息
         2.查看内存信息
         3.查看cpu信息
         4.查看网络信息
         5.查看进程信息
         6.退出工具箱

执行脚本结果

① 查看磁盘信息

② 查看内存信息
    

③ 查看cpu信息

 ④ 查看网络信息
         

⑤ 查看进程信息
         

⑥ 退出工具箱

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值