1. 程式人生 > >bash變量

bash變量

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變量