婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解shell腳本中的case條件語句介紹和使用案例

詳解shell腳本中的case條件語句介紹和使用案例

熱門標簽:AI智能電銷機器人壞處 沈陽ai電銷智能機器人 電話機器人對家居行業幫助大嗎 如何申請400的電話呀 地圖標注審核周期 蘭州電銷機器人加盟 合肥電銷外呼系統供應商 黑暗之魂3地圖標注 電商外呼系統排名

#前言:這篇我們接著寫shell的另外一個條件語句case,上篇講解了if條件語句。case條件語句我們常用于實現系統服務啟動腳本等場景,case條件語句也相當于if條件語句多分支結構,多個選擇,case看起來更規范和易讀

#case條件語句的語法格式

case "變量" in
 值1)
 指令1...
 ;;
 值2)
 指令2...
 ;;
 *)
 指令3...
esac

#說明:當變量的值等于1時,那么就會相應的執行指令1的相關命令輸出,值等于2時就執行指令2的命令,以此類推,如果都不符合的話,則執行*后面的指令,要注意內容的縮進距離

#簡單記憶

case "找工作條件" in
 給的錢多)
 給你工作...
 ;;
 給股份)
 給你工作...
 ;;
 有發展前景)
 可以試試...
 ;;
 *)
 bye bye !!
esac

實踐1.根據用戶的輸入判斷用戶輸入的是哪個數字,執行相應動作

#如果用戶輸入的是1-9的任意一個數字,則輸出對應輸入的數字,如果是別的字符,則提示輸出不正確并退出程序

[root@shell scripts]# cat num.sh 
#!/bin/bash

#create by guoke
#function number input

read -p "please input a number:" num #打印信息提示用戶輸入,輸入信息賦值給num變量

case "$num" in
 1)
 echo "The num you input is 1"
 ;;
 [2-5])
   echo "The num you input is 2-5"
 ;;
 [6-9])
   echo "The num you input is 6-9"
 ;;
 *)
   echo "please input number[1-9] int"
    exit;
esac

#說明:使用read讀取用戶輸入的數據,然后使用case條件語句進行判斷,根據用戶輸入的值執行相關的操作

#執行效果

[root@shell scripts]# sh num.sh
please input a number:1
The num you input is 1
[root@shell scripts]# sh num.sh
please input a number:3
The num you input is 2-5
[root@shell scripts]# sh num.sh
please input a number:4
The num you input is 2-5
[root@shell scripts]# sh num.sh
please input a number:8
The num you input is 6-9
[root@shell scripts]# sh num.sh
please input a number:a
please input number[1-9] int

實踐2.打印一個如下的水果菜單

(1) banana

(2) apple

(3)orange

(4) cherry

#腳本編寫

[root@shell scripts]# cat menu.sh 
#!/bin/bash

#create by guoke
#function print menu

RED_COLOR='\E[1;31m'
GREEN_COLOR='\E[1;32m'
YELLOW_COLOR='\E[1;33m'
BLUE_COLOR='\E[1;34m'
RES='\E[0m'

echo ' #使用echo打印菜單
#############################
 1.banana
 2.apple
 3.pear
 4.cherry
#############################
'

read -p "please select a num:" num

case "$num" in
 1)
   echo -e "${YELLOW_COLOR} banana ${RES}"
 ;;
 2)
   echo -e "${RED_COLOR} apple ${RES}"
 ;;
 3)
   echo -e "${GREEN_COLOR} pear ${RES}"
 ;;
 4)
   echo -e "${BLUE_COLOR} cherry ${RES}"
 ;;
 *)
   echo "please input {1|2|3|4}"
esac

#說明:定義顏色,使用read讀取用戶輸入的數據,然后使用case條件語句進行判斷,根據用戶輸入的值執行相關的操作,給用戶輸入的水果添加顏色

#擴展:輸出菜單的另外種方式

cat-EOF
===============================
 1.banana
 2.apple
 3.pear
 4.cherry
===============================
EOF

#執行效果

#如果輸入不正確或者不輸入的話就打印幫助

[root@shell scripts]# sh menu.sh 

#############################
1.banana
2.apple
3.pear
4.cherry
#############################

please select a num:
please input {1|2|3|4} 

#輸入選項中的數字,打印相關信息

實踐3.開發nginx啟動腳本

#主要思路:

#1.主要通過判斷nginx的pid文件有無存在,通過返回值查看有沒有運行

#2.通過case語句獲取參數進行判斷

#3.引入系統函數庫functions中的action函數

#4.對函數及命令運行的返回值進行處理

#5.設置開機自啟動

#附上nginx編譯安裝過程

#!/bin/bash
yum install gcc pcre pcre-devel wget openssl openssl-devel.x86_64 -y 
mkdir -p /home/demo/tools
cd /home/demo/tools/
wget -q http://nginx.org/download/nginx-1.6.3.tar.gz
useradd nginx -s /sbin/nologin -M
tar xf nginx-1.6.3.tar.gz 
cd nginx-1.6.3/
./configure --user=nginx --group=nginx --prefix=/application/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
ln -s /application/nginx-1.6.3 /application/nginx/ #做軟連接
/application/nginx/sbin/nginx -t #檢查語法
/application/nginx/sbin/nginx #啟動服務

#腳本編寫

[root@shell init.d]# chmod +x /etc/init.d/nginxd
[root@shell init.d]# cat nginxd 
#!/bin/bash
#chkconfig: 2345 40 98 #設定2345級別,開機第40位啟動腳本,關機第98位關閉腳本

#create by guoke
#email:1075792988@qq.com
#function nginx start scripts

[ -f /etc/init.d/functions ]  source /etc/init.d/functions #引入系統函數庫

PIDFILE=/application/nginx/logs/nginx.pid #定義PID文件路徑
NGINX=/application/nginx/sbin/nginx #定義啟動命令路徑

value(){ #定義返回值函數
 RETVAL=$?
 if [ $RETVAL -eq 0 ];then
   action "Nginx is $1" /bin/true
 else
   action "Nginx is $1" /bin/true
 fi
}

start(){ #定義啟動函數
 if [ -f $PIDFILE ];then #判斷PIDFILE存不存在,存在就打印運行,否則就啟動
   echo "Nginx is running"
 else
   $NGINX
   value start #調用返回值函數
 fi
}

stop(){ #定義停止函數
 if [ ! -f $PIDFILE ];then #也是通過判斷PID文件是否存在然后進行相關操作
   echo "Nginx not running"
 else
   $NGINX -s stop
   value stop
 fi
}

reload(){ #定義重啟函數
 if [ ! -f $PIDFILE ];then
   echo "not open $PIDFILE no such directory"
 else
   $nginx -s reload
   value reload
 fi
}

case "$1" in #使用case接收腳本傳參的字符串
 start) #如果第一個參數為start,調用start函數
   start
 ;;
 stop) #如果第一個參數為stop,調用stop函數
   stop
 ;;
 reload)
   stop
   sleep 1
   start
 ;;
 *)
   echo "USAGE:$0 {stop|start|reload}"
   exit 1
esac

#執行效果

[root@shell init.d]# sh nginx stop
Nginx is stop [ OK ]
[root@shell init.d]# sh nginx start
Nginx is start [ OK ]
[root@shell init.d]# sh nginx reload
Nginx is stop [ OK ]
Nginx is start [ OK ]

實踐4.開發跳板機

#要求用戶登錄到跳板機后只能執行管理員給定的選項動作,不能中斷腳本而到跳板機服務器上執行任何系統命令

#思路

1.首先做好ssh key驗證登錄
2.實現遠程連接菜單選擇腳本
3.利用Linux信號防止用戶在跳板機上操作
4.用戶登錄后就調用腳本

#操作過程

3.1.做ssh免密鑰登錄,發送到各個主機,如果機器多的話可以使用腳本進行循環發送

[demo@shell ~]$ ssh-keygen -t dsa -P "" -f ~/.ssh/id_dsa 
Generating public/private dsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_dsa): 
Created directory '/home/demo/.ssh'.
Your identification has been saved in /home/demo/.ssh/id_dsa.
Your public key has been saved in /home/demo/.ssh/id_dsa.pub.
The key fingerprint is:
SHA256:BTFfcC2hMKBzuZeUYylC3qgza7z4X6j3RBlwq8Beoak demo@shell
The key's randomart image is:
+---[DSA 1024]----+
| + o.*...+o |
| . = B o O +. . |
| = B B * + . |
| o + = B + |
|E = . + S |
| . + o .  |
| + . o  |
| o o.o  |
|..+o...  |
+----[SHA256]-----+
#命令說明:一鍵生成密鑰,不用按回車。-t:指定要創建的密鑰類型,-P:提供舊密碼,空表示不需要密碼,-f:指定位置

#將公鑰拷貝到其他服務器的demo用戶
[demo@shell ~]$ ssh-copy-id -i .ssh/id_dsa.pub "demo@192.168.86.129"
[demo@shell ~]$ ssh-copy-id -i .ssh/id_dsa.pub "demo@192.168.86.130"
[demo@shell ~]$ ssh-copy-id -i .ssh/id_dsa.pub demo@192.168.86.131

#3.2.編寫腳本

[root@shell scripts]# cat tiaobanji.sh 
#!/bin/bash

trapper(){ #定義屏蔽信號函數
 trap '' INT QUIT TSTP TERM HUB
}

menu(){ #定義菜單列表函數
 cat-EOF #加-后面的EOF就可以不用頂格
==============Host List==============
 1) 192.168.86.129
 2) 192.168.86.130
 3) 192.168.86.131
 4) 192.168.86.132
 5) exit
=====================================
 EOF
}

USER=demo

host(){ #定義主機列表函數
 case "$1" in
 1)
 ssh $USER@192.168.86.129
 ;;
 2)
 ssh $USER@192.168.86.130
 ;;
 3)
 ssh $USER@192.168.86.131
 ;;
 4)
 ssh $USER@192.168.86.132
 ;;
 5)
 exit
esac
}

main(){ #定義主函數
 while : #while循環,一直循環
 do
 trapper #調用trapper函數
 clear #清屏
 menu #調用菜單函數
 read -p "please select a num:" num #獲取用戶輸入
 host $num #調用主機列表函數和傳入的參數,進行遠程登錄
 done
}
main #調用主函數

#3.3.編寫腳本進行判斷,判斷是否是root用戶登錄,如果不是root用戶就執行腳本,彈出跳板機界面

[root@shell ~]# cd /etc/profile.d/
[root@shell profile.d]# cat jump.sh 
#!/bin/bash

[ $UID -ne 0 ]  . /scripts/tiaobanji.sh

#3.4.測試

#登錄demo普通用戶輸入密碼的時候就會直接跳到選項卡頁面了

#選項卡頁面

==============Host List==============
1) 192.168.86.129
2) 192.168.86.130
3) 192.168.86.131
4) 192.168.86.132
5) exit
=====================================
please select a num:1 #進行選擇
Last login: Tue Mar 31 23:48:33 2020 from 192.168.86.128
[demo@mysql ~]$

#3.5.提示:跳板機的安全

1.禁止跳板機可以從外網IP進行登錄,只能從內網IP登錄
2.其他服務器也限制只能內網IP登錄,同時禁止root登錄,做完ssh key認證,將密碼登錄禁止,通過免密碼登錄到其他服務器

#總結:if條件語句主要用于取值判斷、比較,應用比較廣,case條件語句主要是寫服務的啟動腳本,各有各的優勢。好了,shell腳本的條件語句就講解到這里了,接下來會繼續寫shell腳本的循環(包括for,while等),如果寫的不好的地方還望指出,多多交流提高,下次再會。。。

到此這篇關于詳解shell腳本中的case條件語句介紹和使用案例的文章就介紹到這了,更多相關shell case條件語句內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 解決java.lang.ClassCastException的java類型轉換異常的問題
  • 淺談java switch如果case后面沒有break,會出現什么情況?
  • Java CAS基本實現原理代碼實例解析
  • Element Cascader 級聯選擇器的使用示例
  • Python基于字典實現switch case函數調用
  • 淺談keras中的后端backend及其相關函數(K.prod,K.cast)
  • springboot集成CAS實現單點登錄的示例代碼
  • Python Switch Case三種實現方法代碼實例
  • Android Broadcast 和 BroadcastReceiver的權限限制方式
  • Compare And Swap底層原理及代碼示例詳解

標簽:黔南 通遼 河北 隴南 淮南 河池 常州 黔南

巨人網絡通訊聲明:本文標題《詳解shell腳本中的case條件語句介紹和使用案例》,本文關鍵詞  詳解,shell,腳本,中的,case,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解shell腳本中的case條件語句介紹和使用案例》相關的同類信息!
  • 本頁收集關于詳解shell腳本中的case條件語句介紹和使用案例的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    麻豆成人av在线| 日韩伦理免费电影| 欧美性猛交xxxxxxxx| 一本到高清视频免费精品| 成人综合在线观看| 成人一级片在线观看| 成人深夜视频在线观看| 成人深夜视频在线观看| 99久久综合色| 色综合久久天天综合网| 在线观看91精品国产入口| 欧美日韩在线播| 日韩一级免费观看| 久久精品欧美一区二区三区不卡| 国产精品久久夜| 亚洲国产成人av好男人在线观看| 亚洲成av人片| 精品一区二区三区在线播放| 国产91色综合久久免费分享| www.日韩在线| 欧美日韩在线直播| 欧美sm美女调教| 日本一区二区三区高清不卡| 一区二区三区丝袜| 麻豆精品精品国产自在97香蕉| 国产成a人亚洲精| 欧美午夜一区二区三区| 精品理论电影在线| 亚洲三级视频在线观看| 日本sm残虐另类| 不卡视频在线看| 欧美国产丝袜视频| 亚洲一区二区四区蜜桃| 老司机午夜精品| 91麻豆国产香蕉久久精品| 欧美一区二区日韩| 国产精品电影一区二区| 日韩和欧美一区二区| 暴力调教一区二区三区| 日韩欧美国产小视频| 亚洲女性喷水在线观看一区| 国产精品原创巨作av| 欧美乱妇一区二区三区不卡视频| 亚洲国产成人一区二区三区| 图片区小说区区亚洲影院| 99久久99久久久精品齐齐| 日韩免费观看2025年上映的电影| 亚洲色图制服丝袜| 国产乱码精品一区二区三区忘忧草| 欧美午夜一区二区三区| 亚洲视频一区二区在线观看| 风间由美中文字幕在线看视频国产欧美| 欧美久久婷婷综合色| 亚洲精品国产品国语在线app| 国产精品亚洲午夜一区二区三区| 日韩一区二区在线观看| 亚洲图片自拍偷拍| 色综合天天视频在线观看| 国产精品素人视频| 国产成人免费av在线| 久久色.com| 国产综合久久久久久鬼色| 日韩午夜三级在线| 秋霞影院一区二区| 欧美精品v日韩精品v韩国精品v| 亚洲特级片在线| 91丨porny丨户外露出| 国产精品萝li| 色综合久久久久久久久| 国产精品久久久久久福利一牛影视| 国产一区二区三区在线观看免费 | 精品国产麻豆免费人成网站| 日韩制服丝袜先锋影音| 7777精品伊人久久久大香线蕉经典版下载 | 欧美一级二级在线观看| 天使萌一区二区三区免费观看| 欧美日韩一区二区在线观看 | 91在线国内视频| 亚洲人成影院在线观看| 色88888久久久久久影院按摩| 亚洲女性喷水在线观看一区| 欧洲在线/亚洲| 视频一区国产视频| 欧美tickling网站挠脚心| 紧缚奴在线一区二区三区| 久久一区二区三区国产精品| 国产精品资源在线观看| 亚洲欧洲日本在线| 欧美在线小视频| 日本一区中文字幕| 久久久久久免费毛片精品| 不卡大黄网站免费看| 亚洲精品国产第一综合99久久| 欧美中文字幕久久| 国产最新精品精品你懂的| 国产精品久久久久久久久动漫 | 视频一区二区欧美| 日韩欧美中文一区二区| 国产一区二区三区蝌蚪| 亚洲欧美另类小说| 69堂成人精品免费视频| 国产一区欧美日韩| 一区二区三区波多野结衣在线观看| 91麻豆精品国产91久久久久久 | 日韩三级.com| jlzzjlzz欧美大全| 亚洲va国产天堂va久久en| 精品成人a区在线观看| 99精品国产99久久久久久白柏| 偷拍与自拍一区| 国产精品国产三级国产普通话三级| 欧洲精品在线观看| 国产精品123| 日韩福利视频导航| 亚洲人成网站色在线观看| 精品久久人人做人人爱| 欧美影视一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 蜜臀精品一区二区三区在线观看 | 国产精品自产自拍| 亚洲电影一区二区| 国产日韩欧美精品综合| 91精品国产欧美一区二区| 99精品久久只有精品| 国产精品伊人色| 日韩精品久久久久久| 亚洲天堂久久久久久久| 久久精品免费在线观看| 欧美一区二区在线看| 在线观看日产精品| 99久久精品免费精品国产| 狠狠色狠狠色综合系列| 亚洲第一福利视频在线| 亚洲人吸女人奶水| 中文字幕一区日韩精品欧美| 精品国产91乱码一区二区三区| 欧美卡1卡2卡| 在线观看日韩av先锋影音电影院| av欧美精品.com| www..com久久爱| 波多野结衣中文字幕一区| 国产成+人+日韩+欧美+亚洲| 国产一区二区三区免费观看| 国产一区二区不卡| 国产一区999| 国产一区二区主播在线| 国产成人在线网站| 国产成人在线视频网址| 国产aⅴ综合色| 成人精品视频网站| 一道本成人在线| 色婷婷国产精品久久包臀| 在线国产电影不卡| 欧美日韩免费不卡视频一区二区三区| 在线影视一区二区三区| 色婷婷久久久久swag精品| 欧美怡红院视频| 欧美一区二区日韩一区二区| www久久精品| 国产精品激情偷乱一区二区∴| 亚洲天堂网中文字| 亚洲午夜在线视频| 日韩高清国产一区在线| 精彩视频一区二区| www.欧美日韩| 欧美日韩久久久| www国产成人免费观看视频 深夜成人网| 2020日本不卡一区二区视频| 国产欧美精品一区二区色综合| 日韩美女视频19| 美女在线一区二区| 成人激情开心网| 欧美日韩免费一区二区三区视频| 欧美日韩国产综合久久| 337p粉嫩大胆噜噜噜噜噜91av | 香蕉av福利精品导航| 韩国午夜理伦三级不卡影院| 成人免费视频视频在线观看免费| 一本色道综合亚洲| 日韩欧美国产系列| 亚洲女厕所小便bbb| 免费高清在线一区| 色婷婷综合久色| 欧美精品一区二区三区蜜臀| 亚洲婷婷国产精品电影人久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产激情91久久精品导航 | 91高清视频在线| 26uuu精品一区二区三区四区在线| 中文字幕中文乱码欧美一区二区 | 不卡欧美aaaaa| 91精品免费观看| 亚洲天堂网中文字| 激情综合色丁香一区二区| 日本精品裸体写真集在线观看 | 久久久久久久一区| 日韩电影在线看| 91成人在线免费观看| 国产人成一区二区三区影院| 日韩有码一区二区三区|