Shell编程基础(五)shell 条件判断语句 if 和 case

概述

和其他编程语言一样,shell也有条件判断语法,同样是分支流程设计的基础。

if

基本语法

基本语法为:

  • 单条件
    if [[ 条件表达式 ]]
    then
    // do something
    fi

  • 多条件
    if [[ 条件表达式 ]] && [[ 条件表达式 ]]
    then
    // do something
    fi

单 [ -a ]
if [ 条件表达式 -a 条件表达式 ]
then
// do something
fi

注意条件表达式和 [[ ]] 之间要留有空格

如果以命令执行结果为条件,则不要 [[]]
if 命令行执行
then
xxx
fi

比较运算符

数值运算符
-eq :等于
-le :小于等于
-lt :小于
-ge :大于等于
-gt : 大于
-ne : 不等于
字符串运算符
= :等于, [] [[]] 都可以;
!= 不等于, [] [[]] 都可以;
-z :长度为0
-n :长度不为0
字符串值:字符串是否存在
逻辑运算符
  • []
-a :与
-o :或
!:非
  • [[]]
&&
||
!
  • if
num=12
if [[ ${num} -eq 12 ]]
then echo "条件判断成立"
fi

也可以写到一行
num=12;if [[ ${num} -eq 12 ]];then echo "条件判断成立";fi;
  • if else
num=12
if [[ ${num} -lt 10 ]]
then echo "num 小于 10"
else echo "num 不小于 10"
fi
  • if-elif
num=12
if [[ ${num} -gt 30 ]]
then echo "num 大于 30"
elif [[ ${num} -gt 20 ]]
then echo "num 大于 20"
else echo "num 小于等于 20"
fi
文件运算符
-b :是否块设备文件,磁盘文件
-d :是否为目录
-e :是否存在
-f :是否为普通文件
-h :是否为硬链接文件(文件副本,但不单独占据空间)
-L :是否为软链接文件(一个指向目标文件的链接文件)
-r :是否可读
-s : 是否不为空
-w :是否可写
-x :是否可执行

-O :是否存在并属于当前用户
-G : 是否存在并属于当前用户组

示例

通过脚本创建用户
#!/bin/bash
read -p "请输入用户名:" name
id $name &>/dev/null
if [[ $? -eq 0 ]];then
  echo "用户 $name 已存在"
else
  read -p "请输入密码:" pass
  if [[ ${#pass} -lt 7 ]];then
    echo  "密码长度不能小于7..."
  else
    useradd $name && echo $pass | passwd ${name} --stdin
    echo "用户 $name 创建成功"
  fi
fi

case

基本语法
case $var in
选项1)
xxxx
;;
选项2)
xxxx
;;
*)
xxx
;;
esac

*case 开始,esac 结束,xx) 代表一个分支多个选项匹配同一个分支时使用 | 分开,;; 表示一个分支结束, ) 兜底选项 类似 switch 的default

#!/bin/bash
web1=192.168.0.104
web2=192.168.0.105
web3=192.168.0.106

while [[ true ]];do
cat <<EOF
二娃的工具箱
1:web1
2:web2
3:web3
q:退出
EOF
read -p "请输工具箱序号" ip

case $ip in
1)
ssh root@$web1
;;
2)
ssh root@$web2
;;
3)
ssh root@$eb3
;;
q)
break
;;
*)
echo "输出有误"
;;
esac

done;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值