bash變量
變量 :一段有名稱的連續的內存空間,這段內存空間的名稱,稱為變量名;在這段內存空間中存儲的數 據,則稱為變量值
變量的賦值:向變量內存空間存放數據的操作,通常用“=”賦值
變量的類型:整型,字符型...(同樣的數據用不同的類型表示所占內存空間不一樣)
整型:用二進制來表示數字數據(一字節由8bite組成)
字符型:ASCLL碼(一個數據由一個ASCLL碼表示,一個ASCLL碼占一個字節)
字符型:UTF-8:
變量的賦值方法:VARNAME=VALUE
變量:
強變量:使用之前必須事先予以聲明;必須聲明變量類型
如在C++中
int x string y x=12 y="12"
x是整型變量,y是字符串變量
弱變量:使用之前無需聲明,也不用指明變量類型(bash變量)
bash中變量名稱的命名規範:
1.變量名只能一“_”或“字母”為起始字符,後面其他字符可以是任意字母,數字,"_"
[root@localhost ~]# aa=‘123‘ [root@localhost ~]# echo $aa 123 [root@localhost ~]# 1ace=‘321‘ bash: 1ace=321: 未找到命令...
註意:引用變量需要在變量前加$符號
2.變量名中的字母是大小寫敏感的:
3.命名的書寫格式:
全大寫
全小寫
駝峰式:(一般單詞首字母大寫)
連接式:(各詞組用‘_‘連接)
4.變量名要能做到見名之意;
5.變量名不能與已知變量或bash的內置變量重復
bash中的變量的分類:
全局變量(環境變量):作用於整個shell進程,包括其子shell
本地變量:作用範圍為當前登錄時所打開的shell進程,不包括其子shell
局部變量:作用範圍僅僅只是當前程序段,一般用於函數
根據變量的聲明方式分類:
bash內置變量
普通的內置變量:HISTSIZE……
位置參數變量:$0,$1,$2,......
特殊變量:$?,$#,$*,$@,$$.......
自定義變量:
1.自定義變量的聲明和賦值操作:
1):聲明全局變量:
export VARNAME
export VARNAME=VALUE
declare命令
格式:declare [-aAfFgilrtux] [-p] [name[=value] ...]
常用選項:
-a:聲明索引數組(如果支持)
-A:聲明關聯數組
-i:聲明整型變量
-l:聲明變量並將變量中的字母轉換為小寫字母
-u:聲明變量並將變量中的字母轉換為大寫字母
-r:聲明只讀變量;該變量技能一次賦值操作
-x:聲明全局變量
declare -x VARNAME[=VALUE]、
註意:選項-l,-u,改變的是變量值而不是變量名
[root@localhost ~]# declare -u aAbC=‘abcdefg‘ [root@localhost ~]# echo $aAbC ABCDEFG
[root@localhost ~]# declare -x abv=‘454‘ [root@localhost ~]# echo $abv 454 [root@localhost ~]# unset abv [root@localhost ~]# echo $abv [root@localhost ~]# declare -r aAbC [root@localhost ~]# unset aAbC -bash: unset: aAbC: 無法反設定: 只讀 variable
註意:利用unset可以撤銷變量名和變量值,但當變量被聲明為只讀變量時無法修改,所以使用unset無法刪除.
2):聲明本地變量:
VARNAME=VALUE
3):聲明局部變量
local VARNEME[=VALUE]
註意:局部變量只能在函數中使用
註意:本地變量變為全局變量,可以通過export [本地變量名] 或declare -x [本地變量名]
[root@localhost ~]# addd=‘123123‘ [root@localhost ~]# export addd [root@localhost ~]# sh sh-4.2# echo $addd 123123 sh-4.2# exit exit [root@localhost ~]# unset addd [root@localhost ~]# addd=‘45678‘ [root@localhost ~]# declare -x addd [root@localhost ~]# sh sh-4.2# echo $addd 45678 sh-4.2#
2.查看環境變量
set命令:
查看和改變shell屬性的值和查看shell變量的變量名和變量值
export命令:
查看變量名稱,也可以為變量賦值
env命令:類似set(顯示環境變量而不顯示函數)
3.查看變量的值
echo ${VARNAME}
4.撤銷變量的賦值及變量聲明
unset VARNAME
首先我們創建全局變量aaa,和局部變量bbb,並在當前shell輸出
[root@localhost ~]# export aaa [root@localhost ~]# export aaa=‘12345‘ [root@localhost ~]# bbb=‘54321‘ [root@localhost ~]# echo $aaa 12345 [root@localhost ~]# echo $bbb 54321
然後我們查看當前shell並切換其他shell
[root@localhost ~]# $0 bash: [root@localhost ~]# sh sh-4.2# echo $aaa 12345 sh-4.2# echo $bbb sh-4.2#
可以看到全局變量可以作用於其子shell但本地變量不行。
bash變量