一、條件測試
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存在並...