用途說明declare命令是bash的一個(gè)內(nèi)建命令,它可以用來聲明shell變量,設(shè)置變量的屬性(Declare variables and/or give them attributes)。該命令也可以寫作typeset。雖然人們很少使用這個(gè)命令,如果知道了它的一些用法,就會(huì)發(fā)現(xiàn)這個(gè)命令還是挺有用的。
常用參數(shù)格式:declare
格式:typeset 格式:declare -p
格式:typeset -p
顯示所有變量的值。
格式:declare -p var
格式:typeset -p var 顯示指定變量var的值。
格式:declare var=value
格式:typeset var=value 格式:var=value
聲明變量并賦值。
格式:declare -i var
格式:typeset -i var 將變量var定義成整數(shù)。在之后就可以直接對表達(dá)式求值,結(jié)果只能是整數(shù)。如果求值失敗或者不是整數(shù),就設(shè)置為0。
格式:declare -r var
格式:typeset -r var 格式:readonly var
將變量var聲明為只讀變量。只讀變量不允許修改,也不允許刪除。
格式:declare -a var
格式:typeset -a var
將變量var聲明為數(shù)組變量。但這沒有必要。所有變量都不必顯式定義就可以用作數(shù)組。事實(shí)上,在某種意義上,似乎所有變量都是數(shù)組,而且賦值給沒有下標(biāo)的變量與賦值給"[0]"相同。
格式:declare -f
格式:typeset -f 顯示所有自定義函數(shù),包括名稱和函數(shù)體。 格式:declare -F
格式:typeset -F 顯示所有自定義函數(shù)名稱。
格式:declare -f func
格式:typeset -f func
只顯示指定函數(shù)func的函數(shù)定義。
格式:declare -x var
格式:typeset -x var
格式:export var
將變量var設(shè)置成環(huán)境變量,這樣在隨后的腳本和程序中可以使用。
格式:declare -x var=value
格式:typeset -x var=value
格式:export var=value
將變量var設(shè)置陳環(huán)境變量,并賦值為value。
使用示例示例一 declare是內(nèi)建命令[root@web ~]# type -a declare [root@jfht ~]# type -a typeset
示例二 declare -i之后可以直接對表達(dá)式求值
[root@web ~]# x=6/3 如果變量被聲明成整數(shù),可以把表達(dá)式直接賦值給它,bash會(huì)對它求值。 [root@jfht ~]# x=error 如果變量被聲明成整數(shù),把一個(gè)結(jié)果不是整數(shù)的表達(dá)式賦值給它時(shí),就會(huì)變成0. [root@jfht ~]# x=3.14 [root@jfht ~]# declare +i x 此命令的結(jié)果是取消變量x的整數(shù)類型屬性。 因?yàn)樽兞縳不是整型變量,所以不會(huì)自動(dòng)對表達(dá)式求值??梢圆捎孟旅鎯蓚€(gè)方式。 [root@jfht ~]# x=$[6/3]
示例三 聲明只讀變量
[root@jfht ~]# declare -r r
示例四 聲明數(shù)組變量(實(shí)際上,任何變量都可以當(dāng)做數(shù)組來操作)
[root@jfht ~]# declare -a names 直接引用names,相當(dāng)于引用names[0] [root@jfht ~]# echo ${names[@]} [root@jfht ~]# declare -p names
示例五 顯示函數(shù)定義
[root@jfht ~]# declare -F |
|
|