第九章·shell编程-case流程控制
case语句介绍
case ... esac 为多选择语句,与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 case ... esac 语句,esac(就是 case 反过来)作为结束标记。
可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
在某些时候,case要优于if,少写很多判断
case语句格式
语法
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
case 工作方式如上所示,取值后面必须为单词 in,每一模式必须以右括号结束。取值可以为变量或常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。
取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。
用法举例
现实举例
case "你的个人条件" in
有钱)
能迎娶白美
;;
有权)
能迎娶白富美
;;
有才有能力有潜力)
能找到对象,白不白不一定,富美些许有点够呛
;;
*都不满足)
研究研究,枕什么样的枕头,可以梦到迎娶白富美吧
程序举例
程序举例 请写一个,跳板机服务,输入1,连接1选项所在的虚拟机
如果要用if判断来实现,得写10个判断,这个时候使用case就比较舒服。
还有之前的ansible模块脚本,把if判断换成case就会很舒服
使用if
[root@zabbix01 ~]# cat if.sh
#!/bin/bash
cat <<EOF
+------------------------+
| 1 172.16.1.7 web01 |
+------------------------+
| 2 172.16.1.8 web02 |
+------------------------+
| 3 172.16.1.31 nfs |
+------------------------+
| 4 172.16.1.41 backup |
+------------------------+
| 5 172.16.1.51 db01 |
+------------------------+
| 6 172.16.1.52 db02 |
+------------------------+
| 7 172.16.1.53 db03 |
+------------------------+
| 8 172.16.1.54 db04 |
+------------------------+
| 9 172.16.1.61 m01 |
+------------------------+
| 10 172.16.1.71 zabbix |
+------------------------+
EOF
read -p '请输入需要连接的主机:' host
if [ $host == '1' -o $host == '172.16.1.7' -o $host == 'web01' ];then
#ssh 172.16.1.7
echo '连接 172.16.1.7 web01'
elif [ $host == '2' -o $host == '172.16.1.8' -o $host == 'web02' ];then
echo '连接 172.16.1.8 web02'
elif [ $host == '3' -o $host == '172.16.1.31' -o $host == 'nfs' ];then
echo '连接 172.16.1.31 nfs'
elif [ $host == '4' -o $host == '172.16.1.41' -o $host == 'backup' ];then
echo '连接 172.16.1.41 backup'
elif [ $host == '5' -o $host == '172.16.1.51' -o $host == 'db01' ];then
echo '连接 172.16.1.51 db01'
elif [ $host == '6' -o $host == '172.16.1.52' -o $host == 'db02' ];then
echo '连接 172.16.1.52 db02'
elif [ $host == '7' -o $host == '172.16.1.53' -o $host == 'db03' ];then
echo '连接 172.16.1.53 db03'
elif [ $host == '8' -o $host == '172.16.1.54' -o $host == 'db04' ];then
echo '连接 172.16.1.54 db04'
elif [ $host == '9' -o $host == '172.16.1.61' -o $host == 'm01' ];then
echo '连接 172.16.1.61 m01'
elif [ $host == '10' -o $host == '172.16.1.71' -o $host == 'zabbix' ];then
echo '连接 172.16.1.71 zabbix'
fi
使用case
[root@zabbix01 ~]# cat case.sh
#!/bin/bash
num=$1
case $num in
1|172.16.1.7|web01)
echo '连接 172.16.1.7 web01'
;;
2|172.16.1.8|web02)
echo '连接 172.16.1.8 web02'
;;
3|172.16.1.31|nfs)
echo '连接 172.16.1.31 nfs'
;;
4|172.16.1.41|backup)
echo '连接 172.16.1.41 backup'
;;
5|172.16.1.51|db01)
echo '连接 172.16.1.51 db01'
;;
6|172.16.1.52|db02)
echo '连接 172.16.1.52 db02'
;;
7|172.16.1.53|db03)
echo '连接 172.16.1.53 db03'
;;
8|172.16.1.54|db04)
echo '连接 172.16.1.54 db04'
;;
9|172.16.1.61|m01)
echo '连接 172.16.1.61 m01'
;;
10|172.16.1.71|zabbix)
echo '连接 172.16.1.71 zabbix'
;;
*)
echo '请输入1-10的数字'
esac
Shell中给你点颜色看看
在我们使用shell的时候,难免会有一些带颜色的需求,比如说,在座的各位都喜欢的黄色,那么我们在shell中,如何给字符串加上自己想要的颜色呢?
加颜色的固定格式
\e[1;31m 红色的lw\e[0m
\e \033 \E
字体型号;字体颜色;背景颜色m
[root@zabbix01 ~]# echo -e '\e[1;31m 红色的lw\e[0m'
红色的lw
## 分析
1)开头的 \e 或者 \E 或者 \033 表示开始调整颜色
2)中括号中的第一个数字 1; 这里代表字体的状态
0:表示正常
1:表示加粗
2:变浅
3:斜体
4:下划线
5:闪烁
3)再往后 Nm表示字体颜色
30m:黑色
31m:红色
32m:绿色
33m:黄色
34m:蓝色
35m:紫色
36m:天蓝
37m:白色
4)背景颜色
40:黑底
41:红底
42:绿底
43:黄底
44:蓝底
45:紫底
46:天蓝
47:白底
例:
[root@zabbix01 ~]# echo -e '\e[46;30m 天蓝底黑色的lw\e[0m'
完善跳板机服务
1.判断指定的ip是否可以连接
2.判断退出密码
3.推送秘钥对
#!/bin/bash
menu(){
cat <<EOF
+------------------------+
| 1 172.16.1.7 web01 |
+------------------------+
| 2 172.16.1.8 web02 |
+------------------------+
| 3 172.16.1.31 nfs |
+------------------------+
| 4 172.16.1.41 backup |
+------------------------+
| 5 172.16.1.51 db01 |
+------------------------+
| 6 172.16.1.52 db02 |
+------------------------+
| 7 172.16.1.53 db03 |
+------------------------+
| 8 172.16.1.54 db04 |
+------------------------+
| 9 172.16.1.61 m01 |
+------------------------+
| 10 172.16.1.71 zabbix |
+------------------------+
| 输入 h 查看帮助菜单 |
+------------------------+
| 按 q 退出程序 |
+------------------------+
EOF
}
menu
trap "" HUP INT TSTP
while true;do
read -p '请输入需要连接的主机:' host
case $host in
1|172.16.1.7|web01)
echo '连接 172.16.1.7 web01'
;;
2|172.16.1.8|web02)
echo '连接 172.16.1.8 web02'
;;
3|172.16.1.31|nfs)
echo '连接 172.16.1.31 nfs'
;;
h)
clear
menu
;;
q)
exit
;;
*)
echo "Usage: $0 请输入主机名或者IP或者菜单编号..."
esac
done
Comments | 7 条评论
博主 Crytotranytrany
在线收入是让你梦想成真的最简单方法。 https://go.tazalus.com/0j0l
博主 Crytotranytrany
赚几千块钱。 金融机器人将帮助你做到这一点! https://go.tazalus.com/0j0l
博主 Crytotranytrany
还是不是百万富翁? 现在就修好它! https://go.tazalus.com/0j0l
博主 Crytotranytrany
现在,世界各地的任何人都可以获得额外的收入。 https://go.tazalus.com/0j0l
博主 Crytotranytrany
只需点击一下就可以让你的钱增长得非常快。 https://go.tazalus.com/0j0l
博主 ישראל נייט קלאב גאה להציג דירות דיסקרטיות בחיפה
בקליניקה פרטית בקרית שמונה/נהריה יש לכם אפשרות
להתנתק מהסביבה המוכרת לכם, תוך שאתם
זוכים לעיסוי המתבצע בחלל נעים, מבושם
ומאד מרגיע. כשאתם מתעניינים לגבי עיסוי בדרום, דעו
כי פתוחות בפניכם שתי אפשרויות עיקריות:
עיסוי בבאר שבע המתבצע בבית הפרטי שלכם או עיסוי
בבאר שבע המתבצע בקליניקה פרטית.
עיסוי בצפון יכול להגיע גם למשרד שלכם או לבית הפרטי שלכם.
לעתים, העיסוי הניתן הוא עיסוי רפואי, כך שמתואמים מראש מספר עיסויים בצפון באותו
השבוע. שביעות רצונם של אלו שכבר התנסו
בעיסוי זה מאד גבוהה – כדאי גם
לכם לנסות עיסוי בחיפה הניתן בפורמט זה.
כך לדוגמא, בעת שאתם מעוניינים לעבור
עיסוי בגבעתיים המתמקד אך ורק בראש, או
לחילופין בעיסוי המתמקד באזור הכתפיים.
באתר RELAX קיבצנו מעסים ומעסות אשר מתמחים
בעיסוי מפנק במרכז והעוסקים בשלל סוגי העיסוי ולכן יהיה לכם
קל יותר למצוא את המעסים המתמחים בעיסוי במרכז ושידעו
לקחת לידם את גופכם ולתת לו את המענה הנכון.
אני אוהב בחורות, אני לא מסתיר או מכחיש
את זה, העניין הוא שמסיבות שונות אני גר עדיין עם אימא שלי.
יחד עם זאת, מומלץ להיוועץ עם רופא במקרים מיוחדים
בהם אדם סובל ממחלות רקע מסוימות וכן באם מדובר בנשים בהיריון ולבחון אפשרות לבילוי במתקני הספא בהתאם למצב.
博主 דירות דיסקרטיות בצפון
לצורך העניין, יש נערות עדינות ויש אגרסיביות יותר.
עיסוי גוף טנטרי, שמורכב ממשיכות מוחיות עדינות ומסייע בפתיחה אנרגטית
של הגוף.במהלך הפגישה משחרר את הרגשות שהצטברו מתחת
לחזה ולבטן. הנערות המדהימות ביותר מציבות לכם את כל האפשרויות לממש כל פנטזיה שרצה לכם
בראש בין אם אתם עם בת זוג, עם חברים או לבד.
כאן תוכלו להשיג את הטוב ביותר, נערות מושלמות ויפות שיודעות איך לענג כל גבר ומבינות מה הצורך האמיתי שלכם.
מסתמן כי יותר ויותר גברים כבר יודעים איפה למצוא את המזור המושלם ביותר,
קוראים לזה נערות ליווי בכפר-סבא והן הפתרון הטוב
ביותר ללא מעט שמעידים על חיים טובים
ביותר בזכות מפגש אחד לוהט. לאחר אימות שהפורטל מבצע ולצד ראיונות
מאפשר הפורטל לתת לכם את הטעימה שלא תיגמר
לעולם- נערות ליווי שוות ביותר, עסיסיות ביותר שיודעות בדיוק מה לעשות כשהן
מגיעות ואיך לעזוב את המקום בצורה דיסקרטית ופרטית ביותר.
החלום הרטוב ביותר של כל גבר או אישה זה מפגשים
מעצימים שיכולים לשנות את מכלול
החיים וחלק מזה קשור גם במפגשים עם נערות ליווי בבאר שבע.