linux流程控制if,for,case,while

 Shell編程中循環命令用于特定條件下決定某些語句重復執行的控制方式,有三種常用的循環語句:for、while和until。while循環和for循環屬于“當型循環”,而until屬于“直到型循環”。循環控制符:break和continue控制流程轉向。

選擇執行:
            if COMMADN;then COMMAND;fi   :第一個命令執行成功,就執行第二條命令,否則就退出
多分支:
if  判斷條件 1 ; then
      條件為真的分支代碼
elif  判斷條件 2 ; then
      條件為真的分支代碼
elif  判斷條件 3 ; then
      條件為真的分支代碼
else
      以上條件都為假的分支代碼
fi
     逐條件進行判斷,第一次遇為“真”條件時,執行其分支,而后結束整個if

case中的 PAT 支持glob風格的通配符:
             *:  任意長度任意字符
             ?:  任意單個字符
            []:指定范圍內的任意單個字符
           a|b: a或b
case 變量引用 in        #變量引用便是方法: $i  就是變量引用的值                  
PAT1)                   #每個分支結束,需要雙引號結束
      分支1
      ;;
PAT2)
      分支2
      ;;
      …
)
      默認分支
      ;;
esac

循環執行:      
for  變量名 in 列表;do         #變量名,比如i, 直接是變量i ,而不是$i
     循環體
done
  執行機制 :
          依次將列表中的元素賦值給“變量名”; 每次賦值后即執行一次循環體; 直到列表中的元素耗盡,循環結束

列表生成方式:
(1)  直接給出列表
(2)  整數列表:
      (a) {start..end}     #{1..100}   {1..100..2} {100..1..1}  {100..10..-2}
      (b) $(seq [start [step]] end)  # seq 100   seq 1 2 100  seq 100 -2 1
      使用中括號的列表,步長放在后面
      使用seq命令列表,步長放在中間
(3)  返回列表的 命令
      $(COMMAND)
(4)  使用glob,如:
.sh
(5)  變量引用;
      $@, $*

取隨機字符:tr -dc “[:alnum:]” < /dev/urandom |head -c8 |md5sum  表示取幾位字符
                                              取隨機密碼:md5sum
for循環適合使用在關于數字和列表的循環,列表多少就循環多少次
while循環適用于判斷命令成功與否;
打印顏色: echo -e “\033[41m  \033[0m”       -e 是使轉義符生效
                     設定顏色    結束符
          其中41-45設定背景色,31-35字體顏色

while CONDITION; do
      循環體
done
     CONDITION:循環控制條件;進入循環之前,先做一次判斷;每一次循環之后會再
                  判斷;條件為“true” ,則執行一次循環;直到條件測試狀態為“false” 終止循環
 因此:CONDTION 一般應該有循環控制變量;而此變量的值會在循環體不斷地被修正
  進入條件:CONDITION 為true
  退出條件:CONDITION 為false

until CONDITION; do
    循環體
done
   進入條件: CONDITION  為false
   退出條件: CONDITION  為true

循環控制語句continue

用于循環體中
? continue [N] :提前結束第N 層的本輪循環,而直接進入下一輪判斷;最內層為第1層
while CONDTIITON1; do
        CMD1
        …
if CONDITION2; then
        continue
fi
        CMD2
done

原創文章,作者:shewei,如若轉載,請注明出處:http://www.www58058.com/71624

(0)
sheweishewei
上一篇 2017-03-25
下一篇 2017-03-25

相關推薦

  • N25第二周

      1,Linux上的文件管理命令都有哪些,其常用的使用方法及其相關示例演示。        文件查看類命令:cat, tac, head, tail, more, less           分屏…

    Linux干貨 2016-12-12
  • 實驗:LAMP的php模塊方式應用phpmyadm和wordpress

    實驗:LAMP的php模塊方式應用phpmyadm和wordpress 兩臺主機一臺A:httpd,php一臺B:mariadb server 1 A:yum httpd php php-mysql vim /etc/php.inidate.timezone = Asia/Shanghai vim /etc/httpd/conf/httpd.conf Dir…

    Linux干貨 2017-10-21
  • 深入理解java嵌套類和內部類

    一、什么是嵌套類及內部類   可以在一個類的內部定義另一個類,這種類稱為嵌套類(nested classes),它有兩種類型:靜態嵌套類和非靜態嵌套類。靜態嵌套類使用很少,最重要的是非靜態嵌套類,也即是被稱作為內部類(inner)。嵌套類從JDK1.1開始引入。其中inner類又可分為三種:  其一、在一個類(外部類)中直接定義的內部類;  其二、在一個方法…

    Linux干貨 2015-04-07
  • 網絡知識

    網絡知識 一、網絡初識 1.網絡概念  在計算機領域中,網絡是信息傳輸、接收、共享的虛擬平臺,通過它把各個點、面、體的信息聯系到一起,從而實現這些資源的共享。 2.分類 按覆蓋范圍分: 局域網LAN(作用范圍一般為幾米到幾十公里)。 城域網MAN(界于WAN與LAN之間)。 廣域網WAN(作用范圍一般為幾十到幾千公里)。 按拓撲結構分類: 總線型 …

    Linux干貨 2016-09-01
  • centos7編譯安裝zabbix

    centos7源碼編譯安裝zabbix3 centos7源碼編譯安裝zabbix3 centos7源碼編譯安裝zabbix3 系統配置和必要的安裝包 編譯安裝nginx 編譯安裝php 安裝MariaDB 安裝JDK 安裝Zabbix3.0 前戲準備 開始編譯 開始安裝 zabbix虛擬主機創建 前戲準備 開始編譯 開始安裝 php配置 前戲準備 開始編譯 …

    Linux干貨 2016-11-25
  • 使用NFS服務和samba部署wordpress

             centos 7.3主機一臺   centos 6.8主機一臺  使用yum安裝的mysql(7以后使用yum裝mysql叫mariadb)         我事先查看了一…

    2017-05-02
欧美性久久久久