什么是變量 變量是計算機內存的單元,其中存放的值可以改變。當Shell腳本需要保存一些信息時,如一個文件名或是一個數字,就把它存放在一個變量中。每個變量有一個名字,所以很容易引用它。 使用變量可以保存有用信息,使系統獲知用戶相關設置,變量也可以用于保存暫時信息。
變量:變量類型 作用: 1、數據存儲格式 2、參與的運算 3、表示的數據范圍 類型: 字符 數值:整型、浮點型
強類型:定義變量時必須指定類型、參與運算必須符合類型 要求;調用未聲明變量會產生錯誤 如 java,python 弱類型:無須指定類型,默認均為字符型;參與運算會自動 進行隱式類型轉換;變量無須事先定義可直接調用 如: bash 不支持浮點數 變量命名法則: 1、不能使程序中的保留字:例如if, for; 2、只能使用數字、字母及下劃線,且不能以數字開頭 3、見名知義 4、統一命名規則:駝峰命名法
根據變量的生效范圍等標準: 本地變量:生效范圍為當前shell進程;對當前shell之外的其它shell進程,包括當前shell的子shell進程均無效 環境變量:生效范圍為當前shell進程及其子進程 局部變量:生效范圍為當前shell進程中某代碼片斷(通常指函數) 位置變量: $1, $2, ...來表示,用于讓腳本在腳本代碼中調用通過命令行傳遞給它的參數 特殊變量: $?, $0, $*, $@, $#
變量賦值: name=‘value’, ? 可以使用引用value: (1) 可以是直接字串; name=“root" (2) 變量引用: name="$USER" (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, USRE,UID,HISTSIZE, HOME, PWD, OLDPWD, HISTFILE, PS1
只讀變量:只能聲時,但不能修改和刪除 readonly name declare -r name
位置變量:在腳本代碼中調用通過命令行傳遞給腳本的參數 $1, $2, ...:對應第1、第2等參數, shift [n]換位置 $0: 命令本身 $*: 傳遞給腳本的所有參數,全部參數合為一個字符串 $@: 傳遞給腳本的所有參數,每個參數為獨立字符串 $#: 傳遞給腳本的參數的個數 $@ $* 只在被雙引號包起來的時候才會有差異 示例:判斷給出的文件的行數 linecount="$(wc -l $1| cut -d' ' -f1)" echo "$1 has $linecount lines."
原創文章,作者:RecallWzc,如若轉載,請注明出處:http://www.www58058.com/35713
總結的很好,很實用