標籤:shell文法
編程能力:指令碼編程 程式設計語言:機器語言、組合語言、進階語言 靜態語言:(編譯型)C語言 C++ JAVA C# 動態語言:(邊解釋邊執行) 面向過程:shell C語言 物件導向:JAVA Python perl C++
shell 弱類型程式設計語言 強:變數使用時,必須事先聲明,甚至還要初始化 弱:變數用時聲明,甚至不區分類型 變數賦值:VAR_NAME=VALUE bash變數類型: 環境變數 本地變數 位置變數 特殊變數: $? 上條命令的執行狀態傳回值 $# 參數個數 $* 參數列表 [email protected] 參數列表 引用變數:${VARNAME} #括弧可省略 e.g ANIMAL = pig echo “There are some ${ANIMAL}s.” 環境變數: export VARNAME = VALUE 指令碼在執行時會啟動一個子shell進程 命令列會繼承當前shell環境變數 系統自動執行指令碼需要自我定義需要各環境變數 位置變數: $1 $2 $3 程式執行,有兩類傳回值: 程式執行結果 程式狀態返代碼: 0:正確執行 1-255:錯誤執行
文法: #!/bin/bash #!:指定程式的魔數 條件測試的運算式: [ expression ] 命令測試法 [[ expression ]] 關鍵字測試法 test expression 測試命令法 整數比較: -eq:(equal)測試兩個整數是否相等:比如$A -eq $B -ne:(unequal)測試兩個整數是否不等:不等為真,相等為假 -gt:(greater than)測試一個數是否大於另一個數:大於為真,否則為假 -lt :(less than)測試一個數是否小於另一個數:小於為真,否則為假 -ge:(greater equal)測試兩個數大於或等於 -le:(less equal)測試兩個數小於或等於 條件判斷,控制結構 單分支if語句: if 判斷條件;then statement1 ..... fi 雙分支的if語句: if 判斷條件;then statement1 ..... else statement3 ... fi exit:退出指令碼 檔案測試: -e FILE:測試檔案是否存在 -f FILE:測試檔案是否為普通檔案 -d FILE:測試檔案是否為目錄 -r FILE:測試檔案是否可讀 -w FILE:測試檔案是否可寫 -x FILE:測試檔案是否可執行 bash -x 測試指令碼逐步執行是否有語法錯誤 多分支的if語句: if 判斷條件1;then statement1 ..... elif 判斷條件2;then statement2 .... elif 判斷條件3;then statement3 .... else statement3 ..... fi
學習之路(四)淺談:shell弱類型程式設計語言及指令碼文法