[Linux] shell条件语句和if语句

一、条件语句

1.1 测试

test 测试文件的表达式是否成立

格式:test 条件表达式

           [ 条件表达式 ]

选项作用
-d测试是否为目录
-e测试目录或文件是否存在
-a测试目录或文件是否存在
-f测试是否为文件
-r测试当前用户是否有权限读取
-w测试当前用户是否有权限写入
-x测试当前用户是否有权限执行
-L测试是否为软连接文件
test

1.2 比较整数

[ 整数1 -操作符 整数2 ] 公式
         -eq:第一个数等于第二个数

        -ne:第一个数不等于第二个数

        -gt:第一个数大于第二个数

        -lt:第一个数小于第二个数

        -le:第一个数小于或等于第二个数

        -ge:第一个数大于或等于第二个数

 1.3 字符串比较

= 字符串相同
!= 字符串不相同
-z 字符串内容为空
-n 字符是否存在

格式:

[ $a = $b ] 是否相同

[  $a  !=  $b ]  是否不相同

[  -z  $b ]   是否为空

[  -n  $a ] 字符是否存在

1.4 逻辑测试

格式:[ 表达式1 ] 操作符 [ 表达式2 ] ...

           命令1 操作符 命令2...

短路与

全真才为真;一假即为假

cmd1 && cmd2

短路或

 一真才即为真;全假才为假

cmd1 || cmd2

应用

cmd1 && cmd2 || cmd3

1.5 双中括号

用法

[[ == (通配符) ]]

[[ =~ (正则表达式) ]]

1.6 () {}

用途:都可以把命令放在一起,批量执行

二、if 语句

2.1 单分支语句

格式:

if 判断条件

then

命令语句

fi

2.2 双分枝语句

格式:
if 判断条件
then
命令
else
命令
fi

实验1 

 实验2

 

2.3  多分枝语句

格式:
if 判断条件
then
命令
elif 判断条件2
then
命令
..........
else
命令
fi

 猜丁壳游戏

三、case分支语句

CASE 语句允许更清晰的脚本程序结构层次,常用于启动、重启或停止服务的脚本时,有些服务不提供此类控制脚本,您要编写 CASE 语句来编写。

case 语句主要用于以下情况:一个变量有多个值,需要对每个值执行不同的命令序列。这种情况与多分支 if 语句非常相似,只是 if 语句确定多个不同的条件,而 case 语句确定单个变量的不同值。

格式:
case $num in
条件判断1)
命令1
;;
条件判断2)
命令2
;;
条件判断3)
命令3
;;
........
*)
;;
echo " "
bash $0
;;
esac

 利用case做个简易的Linux菜单

 试试关闭防火墙

 关于 CASE 语句的说明

        必须以 "in "结束,每个模式必须以右括号") "结束。

        双分号";; "表示命令序列的结束。

        可以在模式字符串中使用方括号表示连续的范围,如"[0-9]",垂直条形符号"|"表示 "或",如 "A|B"。

        ==最后)表示默认模式,"*"相当于通配符 ===*。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值