變數的設定(完全相同於shell script中設定變數的方法):
變數名稱有區分大小寫、不能以數字做名稱開頭。通常,大寫的變數名代表系統的內建變數或環境變數。
變數分為「一般變數」、「環境變數」、「系統變數」,以下先說明一般變數:
(1) 在宣告變數或為變數賦值的時候,語法為:變數名稱=值。
(2) 在呼叫變數的值時,變數名稱之前要加上一個$符號,如:$變數名稱。
$符號就是「取其值」的意思。也就是說,變數名稱是呼叫變數本身,$變數名稱是呼叫變數的值。
※(重要!) 此外,亦可以用 $(命令式) 來呼叫該命令式的回傳值,範例如:
cmdtt1=$(date)
cmdtt2=date
echo $cmdtt1 #執行顯示:Wed Sep 3 08:57:32 CEST 2014 正和在命令面板中輸入date是一樣的效果,顯示了當時的時間。
echo $cmdtt2 #執行顯示:date #只顯示一般字串而已。
※ 要解除變數的宣告,需用:unset 變數名稱。
(3) 變數的種類:
(3-1) 字串:有三種宣告方法:
(3-1-1) 裸字串:即字串兩旁並不用任何符號框住。宣告方式為:變數名稱=字串。如:kk=dd,或 kk=1。這種裸字串的宣告方法有其規則:
※ 字串中不能包含錢號$,$會被當成呼叫變數用的符號。
※「連續或單一個空白字元」會被當成「單獨一個空白字元」。
※ 若要使字串中包含單引號 ' ,可用反斜線 \ 脫逸,如:
t2=gg\'\'
echo $t2
執行顯示:gg''
※ 若要使字串中包含雙引號 " ,可用反斜線 \ 脫逸,如:
t2=gg\"\"
echo $t2
執行顯示:gg""
(3-1-2) 單引號字串:即字串兩旁用單引號 ’ 框住。宣告方式為:變數名稱=’字串’ 。如:kk=’dd’,或 kk=’1’。在單引號字串中,
※ 錢號$被當成一個普通字元。
※ 雙引號 ” 被當成一個普通字元。如:
t1="200"
t2='gg$t1"f'
echo $t2
執行顯示:gg$t1"f
(3-1-3) 雙引號字串:即字串兩旁並不用任何符號框住。宣告方式為:變數名稱=”字串” 。如:kk=”dd”,或 kk=”1”。在雙引號字串中,
※ 可以使用錢號$來呼叫變數之值。
※ 而單引號 ‘ 被當成一個普通字元。如:
t1="200"
t2="gg$t1'f"
echo $t2
執行顯示:gg200'f
(3-1-4) 字串的運算:
要將一堆字串相加在一起,並不需特別的符號,只要將字串連著寫即可。如:
t1="kk"
t2="gg"
t3=$t1"123"$t2"456"
echo $t3
執行顯示:kk123gg456
(3-1-5) 取得子字串:
要取得子字串,可用:${字串名稱:N:L} 來取得字串中序數為N的字元算起的L個字元。其中,N從0開始,L個字元中包含序數為N的字元。如:
s="0123456789"
echo ${s:1:3}
執行顯示:123
(3-1-6) 取得字串長度(也就是字元數):
使用:${#字串名稱} 可取得字串長度。
(3-1-7) 取代子字串:
※ 使用:${字串/子字串一/子字串二} 可將字串內第一個子字串一,用子字串二來取代,然後回傳其結果。
※ 使用:${字串//子字串一/子字串二} 可將字串內所有的子字串一,用子字串二來取代,然後回傳其結果。
(3-2) 整數:在Linux中並不支援浮點數,數字只能是整數類型。
(3-2-1) 整數的四則運算:
整數的四則運算和求餘數,並非直接輸入程式碼就好。如果是直接輸入程式碼,如:
t1=1
t2=10
echo $t1+$t2
執行後顯示:1+10 #顯示結果的型態是一個字串,並不是一個數字。
若要執行運算式,其語法應為:$((運算式)),如:
t1=1
t2=10
echo $((t1+$t2))
執行後顯示:11 #顯示結果的型態便是一個數字了。
※ 四則運算與求餘數的符號分別為 + 、 - 、 * 、 /、%。與一般程式語言無異。
(3-3) 布林值:
※ 宣告變數為真:變數名稱=true
※ 宣告變數為假:變數名稱=false
(3-4) 矩陣:
(3-4-1) 宣告矩陣變數,語法如:
變數名稱=(元素一 元素二 元素三 …)
其中,每個元素之間用空白字元相隔。範例如:
A=("kkk" "bbb" "123")
echo $A #顯示矩陣變數A的首元素。執行顯示:kkk
echo ${A[1]} #顯示矩陣變數A中索引為1的元素(索引從0開始)。執行顯示:bbb
(3-4-2) 相關用法:
※ 元素總數:${#矩陣變數名稱[@]} 會得出該矩陣的元素總數,其資料型態為整數,可直接拿來做數學運算。
留言列表