變量類型:shell
數據存儲格式、存儲空間大小、參與運算種類:bash
字符型函數
數值型:整形、浮點型命令行
強類型:定義變量時必須指定類型、參與運算必須符合類型要求。進程
弱類型:無需指定類型,默認均爲字符型,參與運算會自動進行隱式類型轉換。字符串
bash中的變量的種類:變量
根據變量的生效範圍等標準:引用
本地變量:生效範圍爲當前shell進程:對當前shell以外的其餘shell進程,包括當前shell的子shell進程均無效。程序
環境變量:生效範圍爲當前shell進程及其子進程。命名
局部變量:生效範圍爲當前shell進程中某代碼片斷(一般指函數)
位置變量:$1,$2,……來表示,用於讓腳本在腳本代碼中調用經過命令行傳遞給它的參數
特殊變量:$?,$0,$*,$@,$#
本地變量:
變量賦值:name=‘value’
能夠直接引用:
value:
(1)能夠使直接字符串:name=「username」
(2)變量引用:name=「$username」
(3)命令引用:name=`COMMAND`,name=$(COMMAND)
變量引用:${name},$name
"":弱引用,其中的變量引用會被替換爲變量值
'' :強引用,其中的變量引用不會被替換爲變量值,而保留原字符串
顯示已定義的全部變量:set
銷燬變量 : unset name
環境變量:
變量聲明、賦值:
export name=VALUE
declare -x name=VALUE
變量引用:$name,${name}
顯示全部環境變量:
export env printenv
銷燬:unset name
bash中有許多內檢的環境變量:PATH、SHELL、UID、HISTSIZE、HOME、PWD、OLD、HISTFILE、PS1
變量命名法則:
一、不能使程序中的保留字,例如if、for;
二、只能使用數字、字母及下劃線,且不能以數字開頭;
三、見名知意,通俗易懂。
只讀變量:
readonly name
declare -r name
位置變量:
在腳本代碼中調用經過命令行傳遞給腳本的參數:
$1,$2,……:對應調用第1,2等參數
$0:命令自己
$*:傳遞給腳本的全部參數
$@:傳遞給腳本的全部參數