Shell學習【流程控制】
Shell 流程控制
在Linux程式設計中,流程控制語句基本為 if 、for、while、until、case等條件的控制語句
if控制
if常用語法結構
If (表示式); then echo .......... else echo .......... fi
演示:
#!/bin/bash num=10 if ((${num} > 4));then echo "${num} 大於 3" fi if test [${num} > 4];then echo "${num} 大於 4" fi
if 多重判斷
#!/bin/bash num=10; if [ $num -lt 8 ];then echo "${num} 小於 8" elif [ ${num} -eq 10 ];then echo "${num} 等於 10" elif [ ${num} -gt 11 ];then echo "${num} 大於 10" else echo "沒有符合的條件" fi;
for迴圈
for迴圈語法結構
For 變數 in 字串 do echo "" done
演示:
#!/bin/bash #定義一個陣列 val=(1 2 3 4 5 6) for i in ${val[*]} #也可以直接 in `seq 6` do echo "this is num: $i" done
輸出結果:
#列印結果: this is num: 1 this is num: 2 this is num: 3 this is num: 4 this is num: 5 this is num: 6
演示2:
#!/bin/bash #對查詢檔案批次打包 for i in `find /var/log -name “*.log”` do tar –czf 2019log.tgz $i done
while迴圈
while語法結構
while (條件判斷) do echo "" done
演示:
#!/bin/sh i=1; while(( $i <= 10 ));do #或者while [ $i -le 10 ];do echo $i; let "i++" # 或者((i++)); done;
輸出結果:
1 2 . . 10
演示:
[root@localhost opt]# cat test.sh #!/bin/sh #列印檔案內容 while read line do echo $line; done < /etc/hosts
until迴圈
until迴圈執行命令是需要條件為true時才退出,否知一直迴圈,[]主要判斷true和false
until迴圈與while迴圈在處理方式相反,且while迴圈優於until迴圈
演示:
#!/bin/bash i=1; until [ ! $i -le 10 ];do echo $i; let "i++" #((i++)) or (i=`expr $i + 1`) done;
case選擇語句
簡單演示:
#!/bin/sh #author: case $1 in 1|2|3|4) echo "你輸入數字為$1" ;; *) echo "Usage:{$0 1 | 2 | 3 | 4 | help}" echo "你輸入數字不在服務區" ;; esac
簡單演示
注意:
break 直接跳出while迴圈體 continue 只會跳出當前迴圈,不會跳出while迴圈
#!/bin/sh #author: while : do echo "------------------------" echo '輸入 1-4之間的數字:' echo '你輸入的數字為:' read num case $num in 1|2|3|4) echo "你輸入數字為:${num} !!" ;; *) #echo "Usage:{$0 1 | 2 | 3 | 4 | help}" echo "------------------------" echo "你輸入數字不在服務區" break # continue ;; esac done
select選擇語句
#!/bin/sh #author: PS3="What you like most of the open source system?" select i in windows Linux Max do echo "Your Select System: "$i done
#目錄是否存在 if [ ! -d $BAK_DIR ];then mkdir -p $BAK_DIR fi #test判斷檔案 if test -e ${BAK_DIR} then echo '檔案存在!' else echo '檔案不存在!' fi
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31441024/viewspace-2640917/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux Bash Shell學習(十):流程控制——forLinux
- Linux Bash Shell學習(九):流程控制——if/elseLinux
- 『忘了再學』Shell流程控制 — 39、特殊流程控制語句
- shell流程控制
- 【java學習】控制執行流程Java
- Java學習之流程控制Java
- Java學習之流程控制練習Java
- 『忘了再學』Shell流程控制 — 36、for迴圈介紹
- Shell指令碼的基本流程控制指令碼
- 【分支流程控制語句、迴圈流程控制語句】的學習
- shell系統函式和流程控制函式
- 『忘了再學』Shell流程控制 — 34、if條件判斷語句(二)
- 『忘了再學』Shell流程控制 — 35、多分支case條件語句
- 『忘了再學』Shell流程控制 — 33、if條件判斷語句(一)
- shell學習
- 小白學習Golang(五)Go語言流程控制Golang
- JAVA學習腳印3: java語言控制流程Java
- 學習Shell 教程
- 2. 流程控制 與 函式 |《 刻意學習 Golang 》函式Golang
- 流程控制與陣列—Java基礎學習(二)陣列Java
- 透過例子學習Lua(2)---Lua流程控制(轉)
- Shell 變數學習變數
- Shell學習【test命令】
- Shell學習【運算子】
- shell學習筆記筆記
- JavaScript學習筆記 - 進階篇(3)- 流程控制語句JavaScript筆記
- 《Shell指令碼學習指南》學習筆記指令碼筆記
- shell學習總結-4
- Shell學習【printf與echo】
- shell學習總結-1
- shell學習總結-2
- shell學習總結-3
- Shell學習【變數使用】變數
- shell學習-常用語句
- Shell(Bash)學習· 總章
- shell 學習之for語句
- 學習JAVA的第一天 流程控制及判斷Java
- 《前端運維》一、Linux基礎--06Shell流程控制前端運維Linux