日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux编程 23 shell编程(结构化条件判断 命令if -then , if-then ... elif-then ...else,if test)...

發布時間:2023/12/10 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux编程 23 shell编程(结构化条件判断 命令if -then , if-then ... elif-then ...else,if test)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.概述

  在上一篇里講到了shell腳本,shell按照命令在腳本中出現的順序依次進行處理,對于順序操作已經足夠了,但許多程序要求對shell腳本中的命令加入一些邏輯流程控制,這樣的命令通常叫做 結構化命令。

  1.1 使用if - then語句

--最基本的結構化就是if -then語句,格式如下:if commandthencommandsfi

  在其他編程語言中,if是一個等式,值結果為ture或false,但在bash shell的if語句并不是這樣。在bash shell的if語句會運行if后面的那個命令,如果該命令的退出狀態碼是0,位于then部分的命令就會被執行。反之則不執行,繼續執行腳本中的下一個命令。 fi 語句用來表示if -then語句到此結束。下面是一個if -then簡單例子如下:
    
  上面腳本在if行采用了pwd命令,命令成功結束,echo語句顯示了文本字符串。

  使用if 執行多個命令時,bash shell會將這些命令當成一個塊,如果if語句行的命令退出狀態值為0, 所有命令都會被執行,如果if語句行的命令的退出狀態不為0,所有的命令都會被跳過。下面一個案例if 涉及到了兩個命令一個是grep $testuser,? 另一個是顯示路徑/etc/passwd。上圖示例中mysql用戶存在,報以退出狀態碼是0。并顯示了echo信息。

    
  下面演示如果testuser變量設置成一個系統上不存在的用戶,狀態碼則不是返回0,不進入if then 中,什么都不會顯示。
    

  1.2 ?if-then-else語句

  如果if 執行命令返回一個非零退出狀態碼,bash shell 會繼續執行腳本中的下一條命令,這時else語句提供了作用,格式如下:

-- if -then -else格式: if commandthencommandselsecommandsfi

  下面示例,在原有腳本上加入else語句塊,最后顯示了else中的信息。

    

  1.3 嵌套if

  嵌套的if -then 語句位于主if -then-else語句的else代碼塊中。如下所示在else 語句塊中再嵌入if-then-else

    

  ?對于else部分的另一種形式是: elif, 這樣就不用再寫多個if-then語句了,elif是另一個if-then語句延續else部分, 這種比上面的if嵌套可讀性強, 同樣把上面的腳本改一下,示例如下,if 命令退出狀態碼不為0,進入到elif語句塊中。
    
  ?對于elif后面還可以加else語句塊 ,當elif命令返回也不為0時,進入最后的else語句塊,如下圖所示:

    
  對于 elif語句 還可以是多個串起來。這里就不再演示, 語法如下:

if command1 thencommand set 1 elif command2 then... elif command3 then... else... fi

  對于上面的if結構化語句,歸納起來如下面四種格式, 類似于其它編輯語言的if ..else 或if? ..else if.. else。

if-then if-then else if-then elif-then else if-then elif-then elif-then else

  1.4  結構化test命令

  上面的if 命令只能測試普通的shell命令的狀態碼,下面介紹test命令,它能測試不同條件, 條件成立同樣是退出狀態碼為0, 如果條件不成立測返回非0狀態碼。

-- test命令格式如下 if test condition thencommands fi

  下面是使用test命令確定變量中是否有內容,下面的testuser變量值為mysql,? 因此test命令返回狀態碼為0,進入了then語句塊中。示例如下:
    
  下面演示變量沒有值的情況下,test命令返回狀態碼不為0,進入了else語句塊中。
    

  在bash shell中提供了另一種條件測試方法,無需在if -then語句中聲明test命令,使用[condition] 這種應該是日常使用比較頻繁的。 這種代替test的用法在下一篇中在詳細解說。

--格式如下: if [condition] then commands fi

?

轉載于:https://www.cnblogs.com/MrHSR/p/9777246.html

總結

以上是生活随笔為你收集整理的Linux编程 23 shell编程(结构化条件判断 命令if -then , if-then ... elif-then ...else,if test)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。