shell指令碼學習之語法

2021-07-16 20:31:04 字數 1789 閱讀 6787

一、條件測試

1、條件測試:test或[

命令test可以測試乙個條件是否成立,若測試結果為真,則退出碼為0,若測試結果為假,則為1

*在比較兩個字串是否相等時,建議加上雙引號,且在表示式兩邊均加上相同的乙個字母:test "x$data" == "xhello"

*注意命令和變數的空格,重要重要重要!命令後面加空格,變數不能加空格

與或非運算

二、語句

1、if/then/elif/else/fi

注意:     

read命令表示等待使用者輸入字串,將這個字串儲存到shell變數中。

同時,&&和||也可以表達條件

2.case語句

shell指令碼中的case語句可以匹配字串和wildcard,每個匹配分支有若干條命令,末尾以;;結束,結束後直接跳出esac。

$1表示特殊變數,是在執行指令碼時自動取值為第乙個命令列引數

3、迴圈語句

注意:do done之間不能不寫語句,若沒有語句,則加冒號

例1:

例2

shell還有until迴圈,相當於do..while迴圈

三、位置引數與特殊變數

*注意在shell指令碼的$$的程序號是子bash的程序號,若在執行指令碼之前加上 . 或者source,則不派生子bash,$$表示當前shell程序號

四、函式

2、除錯函式

四、陣列

bash支援一維陣列(不支援多維),並且沒有限定的大小,從0開始資料之間用空格隔開

初始化:

arr=('a' 'b' 'c')  #陣列元素為abc,三個元素

echo $     #一定要加花括號

例:進度條小指令碼

Shell學習之shell語法

shell指令碼就是將完成乙個任務的所有的命令按照執行的先後順序,自上而下寫入到乙個文字檔案中,然後給予執行許可權。shell指令碼的命名 名字要有意義 不超過30個位元組 sh結尾 名字不要太長 區分大小寫 shell指令碼格式 shell指令碼開頭必須指定指令碼執行環境 以 這個特殊符號組合來組...

Shell指令碼語法

定義單變數 p name kang 使用單變數 echo p name js 輸出kang.js echo p name.js 輸出kang.js cp p name.js copy.js 命令1 命令2 如果左邊的 命令1 執行成功,那麼右邊的 命令2 才會被執行。命令1 命令2 與 相反。如果 ...

shell指令碼 語法

條件測試 test 命令test 可以測試乙個條件是否成立,如果測試條件為真,則該命令的exitstatus為0,反之,exitstatus為1。注意 命令 各引數之間應該用空格隔開,以 結尾。但是 不是命令。測試命令 d dir 如果dir存在並且是乙個目錄則為真 f file 如果file存在並...