Shell语法—— while 条件语句
生活随笔
收集整理的這篇文章主要介紹了
Shell语法—— while 条件语句
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
while 循環語句
小結 while 循環的特長是執行守護進程,以及實現我們希望循環持續執行不退出的應用,適合用于頻率小于 1min 的循環處理其他的 while 循環幾乎都可以被 for 循環及定時任務 crontab 功能代替 case 語句可以用 if 語句來替代,而在系統啟動腳本時傳入少量固定規則字符串的情況下,多用 case 語句,其他普通判斷多用 if 語句 一句換場景,if 語句、for 語句最常用,其次是 while(守護進程)、case(服務啟動腳本)
條件表達式,用于簡短的條件判斷及輸出(文件是否存在,字符串是否為空等) if 取值判斷,多用于不同值數量較少的情況 for 最常用于正常的循環處理中 充值,但重復充值金額不累計,充值后立即查詢余額無法正常使用 發送短信,輸入發送的條數和短信內容,當金額不足時,可以選擇(y:充值,n:修改發送條數,o:返回菜單) 查詢余額,只有當使用發送功能選擇(o:返回菜單)時,查詢才可以生常使用 退出,結束當前腳本 #!/bin/bash
RETVAL=0
balance=0
menu(){
cat << EOF1) Recharge2) Send information3) Query4) exit
EOF
read -p " please enter a number: " num
case $num in1)echo "Welcome to chongzhi !"recharge;;2)echo "Welcome Check the balance !"send;;3)echo "Welcome to the query interface !"selects;;4)echo "Looking forward to your next arrival !"exit;;*)echo "Tips:{1|2|3|4}"menu
esac
}recharge(){read -p "please enter to RMB: " rmbexpr $rmb + 1 &>/dev/nullRETVAL=$?if [ $RETVAL -ne 0 ];thenecho "please input num"rechargefiecho "$rmbs Rechargs success"((rmbs=$rmb + $balance))menu
}send(){while trueread -p "send several messages: " stripsexpr $strips + 1 &>/dev/nullRETVAL=$?if [ $RETVAL -ne 0 ];thenecho "please input num"sendfi((count=$strips * 15))doif [ $count -gt $rmbs ];thenecho "Insufficient amount !!!"read -p "Recharge(y|n|o) ?" orif [ $or = y -o $or = Y ];thenrechargeelif [ $or = n -o $or = N ];thensendelse menufielse read -p "Please input information content: " inputecho "sending:$input send success"((balance=$rmbs - $count))echo "Balance: $balance"fi((rmbs=$rmbs - $count))done
}selects(){echo "Query:$balance"menu
}menu $*
while 循環語句語法格式為:
while < 條件表達式 > do指令 done有關腳本運行的相關用法
| sh file.sh & | 把 file.sh 腳本放到后臺運行(后臺運行腳本的常用方法) |
| ctl+c | 停止執行當前腳本或任務 |
| ctl+z | 暫停執行當前腳本或任務 |
| bg | 把當前腳本或任務放到后臺執行 |
| fg | 把當前腳本或任務放到前臺執行。如果是多個腳本,需加編號,如: fg 2 |
| jobs | 查看當前執行的腳本或任務 |
| kill | 關閉執行的腳本任務 |
有關進程管理的 Linux 相關命令
| kill、killall、pkill | 殺掉進程 |
| ps | 查看進程 |
| pstree | 顯示進程狀態樹 |
| top | 顯示進程 |
| renice | 改變優先權 |
| nohup | 用戶退出系統之后繼續工作 |
| pgrep | 查找匹配條件的進程 |
| strace | 跟蹤一個進程的系統調用情況 |
| ltrace | 跟蹤進程調用庫函數的情況 |
一. while 循環結構及相關語句綜合實踐
二. shell 腳本中各個語句的使用場景
案例一:
猜數字
隨機生成一個 100 以內的數字,讓用戶輸入數字來猜。游戲規則:輸入的必須是數字,猜錯時出現大小提示,才對時給出所用次數
案例二:
手機充值并發送短信。這個案例并沒有實際用途,可以當做一個綜合練習玩玩的
以下功能:
案例三:
使用 while 守護進程的方式監控網站,每隔 10s 檢測一次網站是否正常
方法一:
cat 文件|while read line do命令 done方法二:
while read line do命令 done<文件案例一:
編寫一個 shell 腳本,實現 cat 命令的基本功能
案例二:
編寫 shell 腳本,根據短時間內的 PV 量封掉對應 ip,解決類 DoS 的功能
轉載于:https://blog.51cto.com/12384628/2297292
總結
以上是生活随笔為你收集整理的Shell语法—— while 条件语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(3323):高级设计说闭包
- 下一篇: 多元函数的微分学思维导图_多元函数微分学