shell指令碼(二)

2021-09-20 16:47:26 字數 2377 閱讀 5801

一    test條件判斷

如果表示式為true,返回0退出狀態,如果表示式為false,則返回非零退出狀態。test具有替代語法,使用括號「」將表示式括起來,更易於閱讀

1。字串比較運算子: = ; !=

**) 「 = 」  對兩個字串進行比較,相等則返回零推出狀態,不相等則返回非零退出狀態

**)「 != 」 對兩個字串進行比較,不相等則返回零退出狀態,相等則返回非零退出狀態

2、數字比較符運算:

-eq   檢測兩個數是否相等,相等則返回ture

**) 輸入乙個ip ,檢測該主機是否開機,當沒有輸入ip時提示使用者輸入ip

-ne    檢測兩個數是否相等,不相等則返回true

-lt    檢測左邊的數是否小於右邊的,如果是,則返回true

-le    檢測左邊的數是否小於等於右邊的,如果是,則返回true

-gt    檢測左邊的數是否大於右邊的,如果是,則返回true

-ge    檢測左邊的數是否大於等於右邊的數,如果是,則返回true

*)輸入兩個數,將這兩個數相加,判斷他們的結果是否大於10

3、檔案狀態運算子: 

-b file    檢測檔案是否是塊裝置,如果是,則返回true

-c file    檢測檔案是否是字元裝置檔案,如果是,則返回true

-d file    檢測檔案是否是目錄,如果是,則返回true

-f file    檢測檔案是否是普通檔案(既不是目錄,也不是裝置檔案),如果是,則返回true

-w file    檢測檔案是否可寫

-x file    檢測檔案是否可執行

-s file    檢測檔案是否為空,不為空則返回true

-e file    檢測檔案是否存在,如果是,則返回true

-l file    檢測檔案是否為鏈結,如果是,則返回true

**)輸入檔名,顯示檔案的狀態

4.邏輯運算子,

!   非運算,表示式為true時,則返回false,否則返回true

-o   或運算,有乙個表示式true則返回true

-a   與運算,兩個表示式都為true才返回true

&&   返回為true時執行命令

||   返回為false時執行命令

二、if語句

if命令檢查if後面的命令或列表的退出值。如果第乙個命令評估值為true,則執行then之後的命令列表,直至else。,如果第乙個命令的評估為false非零,則執行else與fi之間的命令列表(反向寫if,標記if塊的結束)

示例:**)自動建立目標檔案中的使用者,並新增密碼westos

三、expect語句

在shell中利用exprct實現自動應答指令碼

*)自動應答ssh遠端連線時的問題

*)利用自動應答指令碼遠端連線主機並抓取該主機的主機名

四、 環境變數

shell和指令碼使用變數來儲存資料,有些變數可以連同他們的內容傳遞給子程序,這些變數稱為環境變數

*)env  顯示所有環境變數

*)利用alias定義屬於自己系統命令,將命令寫入.bashrc檔案永久生效

##講「mv」 命令改為 「hh」

shell指令碼入門(二)

例項 以下我們寫乙個指令碼,傳三個引數,並分別輸出 bin bash echo shell 傳遞引數例項!echo 執行的檔名 0 echo 第乙個引數為 1 echo 第二個引數為 2 echo 第三個引數為 3 結果是 root iz2zecv7bqcpnita13c629z bin sh sh...

Linux 二 Shell指令碼

建立shell指令碼檔案時,必須在檔案的第一行指明所使用的shell.格式如下 bin bash在普通的shell指令碼中,英鎊符號 用作注釋行.shell不處理shell指令碼中的注釋行.但是,shell指令碼檔案的第一行是個特例,後面跟著感嘆號告訴shell執行下列指令碼的shell 可以使用b...

Shell指令碼筆記(二)Shell變數

全域性變數對於定義它的shell和其子shell都是可見的,但如果生成它的shell被終止,全域性變數也就消失了。另外全域性變數會被子shell的同名變數覆蓋。定義乙個全域性變數 export a i want break free 或者 b sunday morning export b 刪除乙個...