bash變量
變量:一段有名稱的連續的內存空間;這段內存空間的名稱,稱爲變量名;在這段內存空間中存儲的數據,則稱爲變量值;
程序 = 指令 + 數據
數據:文件,存在值;
向內存空間(變量)中存儲數據的過程,稱爲賦值操作;賦值符號通常爲"=";
變量的類型:
123 -- 整型:01111011
-- 字符型:ASCII:3字節
-- 字符型:UTF-8:9字節
變量:
強變量:使用之前必須事先予以聲明;必須聲明變量類型;
弱變量:在使用之前無需聲明,無需指明變量類型;(bash變量)
變量的賦值方法:
VARNAME=VALUE
其含義:將某數值(VALUE)通過賦值操作(=)存儲於特定的內存空間中(VARNAME);
bash中變量名稱的命名規範:
1.變量名只能以"_"或"字母"爲起始字符,後面的其他字符可以是任意字母,數字或下劃線;
2.變量名中的字母是大小寫敏感的;
3.命名的書寫格式:
全大寫:HISTSIZE
全小寫:myvar
駝峯式:MyNewVariable
連接式:My_New_Var
4.變量名要能做到見名知意;
5.變量名不能與已知變量或bash的內置變量重複;
bash中的變量的分類:
根據變量的作用範圍來劃分:
全局變量(環境變量):作用範圍爲整個shell進程,包括其子shell;
本地變量:作用範圍爲當前登錄時打開的shell進程,不包括其子shell;
局部變量:作用範圍僅僅只是當前程序段,一般用於函數;
根據變量的聲明方式來劃分:
bash內置變量:
普通的內置變量:HISTSIZE,...
位置參數變量:$0, $1, $2, ...
特殊變量:$?, $#, $*, $@, $$, ...
$?:展開爲最近一次執行的命令的狀態返回值(退出狀態碼);用以表示最近一次執行的命令是否成功執行;
$#:不包括$0在內的其餘的位置參數的個數,以十進制數字表示;
$*:從$1開始展開爲位置參數。當使用雙引號引用展開的結果時,它展開爲特殊變量IFS的第一個字符分隔的值;
$@:從$1開始展開爲位置參數。當使用雙引號引用展開的結果時,它展開爲一個單獨的字符串;
$$:展開爲當前shell的進程標識符;
自定義變量:
變量的使用:
1.變量的聲明和賦值:
1) 聲明全局變量(環境變量):
export VARNAME
export VARNAME=VALUE
declare命令:
declare - Set variable values and attributes.
格式:declare [-aAfFgilrtux] [-p] [name[=value] ...]
常用的選項:
-a:聲明索引數組(如果支持)
-A:聲明關聯數組(如果支持)
-i:聲明整型變量
-l:聲明變量並將變量值中的字母轉換爲小寫字母;
-u:聲明變量並將變量值中的字母轉換爲大寫字母;
-r:聲明只讀變量;該變量僅能進行一次賦值操作;
-x:聲明變量並將其導出爲全局變量;
declare -x VARNAME[=VALUE]
2) 聲明本地變量:
VARNAME=VALUE
3) 聲明局部變量:
local VARNAME[=VALUE]
2.查看環境變量:
set命令:
查看和改變shell屬性的值及查看shell變量的變量名和變量值;
export命令:
查看變量名稱,也可以爲變量賦值;
env命令:
3.查看變量的值:
echo ${VARNAME}
4.撤銷變量的賦值及變量聲明
unset VARNAME
有關於保存變量的shell配置文件:
通用配置文件:
/etc/bashrc
/etc/profile
/etc/profile.d/*
私人配置文件:
~/.bashrc
~/.bash_profile
注意:
1.一般情況下,變量都是隨用隨聲明,除非有必要,否則不建議修改配置文件的內容;
2.聲明的變量在使用完以後,最好使用unset命令予以撤銷;