0
点赞
收藏
分享

微信扫一扫

Shell编程及自动化运维(8)模式匹配:case

凌得涂 2022-05-25 阅读 36

模式匹配

  • 邀请用户输入待删除用户名。
  • 询问用户,确定要继续删除吗 yes/no: " y

语法结构

case 变量 in
模式1)
命令序列1
;;

模式2)
命令序列2
;;

模式3)
命令序列3
;;

*)
无匹配后命令序列
;;
esac

case写法

case "$action" in
Y|y|YES|yes|Yes|YeS|YEs)
userdel -r $user
echo "$user is deleted!"
;;
*)
echo "thank you"
;;
esac


JumpServer

示例1

编写跳板程序需要访问服务器时显示服务器列表名

#!/usr/bin/bash
#定义目标主机IP
web1=192.168.122.152
web2=192.168.122.128
mysql1=192.168.122.88

#打印跳转菜单
cat <<EOF
1.WEB1
2.WEB2
3.MYSQL1
EOF
#读取用户输入
read -p "input number: " num

#判断用户选择
case $num in
1)
ssh alice@$web1
;;
2)
ssh alice@$web2
;;
*)
echo '123'
esac


示例2

系统管理工具箱

vim systemmanage.sh
#!/usr/bin/bash
#打印菜单
cat <<-EOF
h. help
f. disk partation
d. filesystem mount
m. memory
u. system load
q.exit
EOF

# 读取用户输入,进行模式匹配
read -p "please input [h for help]: " action
case "$action" in

f)
fdisk -l
;;
d)
df -hT
;;
m)
free -m
;;
u)
uptime
;;
q)
exit
;;
"")
;;
*)
echo "error"
;;
esac


举报

相关推荐

0 条评论