Shell指令碼編程---條件判斷if

來源:互聯網
上載者:User

標籤:運算式

SHELL指令碼編程---判斷

1、條件判斷

     條件判斷在bash分為整數判斷,字元判斷和檔案判斷。

1-1條件判斷的運算式: ① [ expression ] (注意單詞詞頭和詞尾都需要空格)

                  ② [[ expression ]](注意同上)

                  ③ test expression

1-2 整數比較

      ① -eq  測試兩個數是否相等,相等為真,不等為假

      ② -ne  測試兩個數是否不等, 反之。

      ③ -gt (大於),-lt (小於),-ge(大於或等於),-le(小於或等於)

邏輯與:&&   邏輯或: ||

2、條件判斷,控制結構

if  判斷條件;then

   statement1

   statement2

   statement3

………

fi   單分支if語句。

雙分支的if語句

if 判斷條件;then

  statement1

else

  statement2

fi

命令執行狀態傳回值:0為真,其他數值全為假。

==================以下全部都為練習例題===============

邏輯判斷題1、

1、如果使用者不存在,則添加使用者

id USERNAME &> /dev/null || useradd USERNAME

(一般在指令碼中定義的變數內容,指令碼執行結束,變數就會被撤銷)

邏輯判斷2、

1、如果使用者存在,就顯示使用者已經存在,否則就添加此使用者。

id newuser && echo “newuser exists” || useradd newuser

邏輯判斷3、

1、如果使用者不存在,就要添加使用者,否則就顯示使用者已存在

id newuser &> /dev/null && echo “newuser exist” || useradd newuser

邏輯判斷4、

如果使用者不存在,添加還給密碼,否則,顯示使用者已經存在

id newuser2 && echo “newuser2 exists” || useradd newuser2 && echo “newuser2” | passwd --stdin newuser2

條件判斷練習題:

添加三個使用者,user1-user3。需要提前判斷使用者是否存在,並顯示添加了幾個使用者。最後顯示當前系統上使用者的數量

 

練習題二:

寫一個指令碼,使用一個變數儲存使用者名稱,判斷其是否存在先,而且如果其UID為0,就說它是管理員,如果不為0就說它們是普通使用者。

650) this.width=650;" style="border-right- 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/9/6249823_14155247635IJw.png" width="530" height="265" />

寫一個簡單指令碼,完成如下的任務、

使用一個變數儲存使用者名稱,刪除變數中的使用者,以及它的家目錄,顯示“刪除成功”資訊。

650) this.width=650;" style="border-right- 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/9/6249823_1415524763S1Yt.png" width="523" height="190" />

練習題三:

判斷當前系統上是否有使用者預設的shell為bash,如果有,就顯示有多少個這樣的使用者,否則,就顯示沒有。

650) this.width=650;" style="border-right- 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/9/6249823_1415524764G4fX.png" width="563" height="253" />

========(注意:這裡面有個叫RETVAL=$? 這個寫在那個命令語句後面,執行的就是哪個後面的命令執行狀態返回結果。)=========

練習題四:

判斷當前系統上是否有使用者預設的shell為bash,如果有,就顯示其中的一個使用者名稱,否則,就顯示沒有。

650) this.width=650;" style="border-right- 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/9/6249823_1415524764C8YC.png" width="567" height="238" />

練習四:寫指令碼,給定一個檔案,如/etc/inittab,判斷檔案中是否有空白的行,如果有,顯示空白行數,否則,顯示沒有空白行。

650) this.width=650;" style="border-right- 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/9/6249823_1415524765yN51.png" width="578" height="228" /> 

練習四改進:寫指令碼,讓使用者隨便輸入一個檔案,判斷該檔案是否有效,如果有效,則顯示其空白的行,否則,顯示沒有空白行。

650) this.width=650;" style="border-right- 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/9/6249823_1415524766C5rm.png" width="582" height="301" />

練習五:隨便給一個使用者,判斷它的UID和GID是否一致,如果一致,顯示使用者為”good guy“

否則,顯示為bad guy

650) this.width=650;" style="border-right- 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/9/6249823_1415524767TlX6.png" width="583" height="259" />

練習六:判定命令曆史中曆史命令的總條目是否大於等於1000,如果大於等於1000,則顯示“need clean up”,否則顯示“ok!”

650) this.width=650;" style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/9/6249823_1415524767Y9Ch.png" "588" height="174" />或者是650) this.width=650;" style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://img1.51cto.com/attachment/201411/9/6249823_1415524767GZUF.png" "587" height="185" />

Shell指令碼編程---條件判斷if

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.