免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
linux declare

用途說(shuō)明

declare命令是bash的一個(gè)內(nèi)建命令,它可以用來(lái)聲明shell變量,設(shè)置變量的屬性(Declare variables and/or give them attributes)。該命令也可以寫(xiě)作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ù)。在之后就可以直接對(duì)表達(dá)式求值,結(jié)果只能是整數(shù)。如果求值失敗或者不是整數(shù),就設(shè)置為0。 
 
格式:declare -r var
格式:typeset -r var
格式:readonly var
將變量var聲明為只讀變量。只讀變量不允許修改,也不允許刪除。
 
格式:declare -a var
格式:typeset -a var
將變量var聲明為數(shù)組變量。但這沒(méi)有必要。所有變量都不必顯式定義就可以用作數(shù)組。事實(shí)上,在某種意義上,似乎所有變量都是數(shù)組,而且賦值給沒(méi)有下標(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
declare is a shell builtin
[root@web ~]#

[root@jfht ~]# type -a typeset
typeset is a shell builtin
[root@jfht ~]#

 

示例二 declare -i之后可以直接對(duì)表達(dá)式求值

[root@web ~]# x=6/3
[root@web ~]# echo $x
6/3
[root@web ~]# declare -i x
[root@web ~]# echo $x    
6/3
[root@web ~]# x=6/3
[root@web ~]# echo $x
2

如果變量被聲明成整數(shù),可以把表達(dá)式直接賦值給它,bash會(huì)對(duì)它求值。

[root@jfht ~]# x=error
[root@jfht ~]# echo $x
0

如果變量被聲明成整數(shù),把一個(gè)結(jié)果不是整數(shù)的表達(dá)式賦值給它時(shí),就會(huì)變成0.

[root@jfht ~]# x=3.14
-bash: 3.14: syntax error: invalid arithmetic operator (error token is ".14")
如果變量被聲明成整數(shù),把一個(gè)小數(shù)(浮點(diǎn)數(shù))賦值給它時(shí),也是不行的。因?yàn)閎ash并不內(nèi)置對(duì)浮點(diǎn)數(shù)的支持。
[root@web ~]#

[root@jfht ~]# declare +i x

此命令的結(jié)果是取消變量x的整數(shù)類(lèi)型屬性。
[root@jfht ~]# x=6/3
[root@jfht ~]# echo $x
6/3

因?yàn)樽兞縳不是整型變量,所以不會(huì)自動(dòng)對(duì)表達(dá)式求值??梢圆捎孟旅鎯蓚€(gè)方式。

[root@jfht ~]# x=$[6/3]
[root@jfht ~]# echo $x
2
[root@jfht ~]# x=$((6/3))
[root@jfht ~]# echo $x  
2
[root@jfht ~]#

 

示例三 聲明只讀變量

[root@jfht ~]# declare -r r
[root@jfht ~]# echo $r

[root@jfht ~]# r=xxx
-bash: r: readonly variable
[root@jfht ~]# declare -r r=xxx
-bash: declare: r: readonly variable
[root@jfht ~]# declare +r r   
-bash: declare: r: readonly variable
[root@jfht ~]#
[root@jfht ~]# declare +r r
-bash: declare: r: readonly variable
[root@jfht ~]#
[root@jfht ~]# unset r
-bash: unset: r: cannot unset: readonly variable
[root@jfht ~]#

 

示例四 聲明數(shù)組變量(實(shí)際上,任何變量都可以當(dāng)做數(shù)組來(lái)操作)

[root@jfht ~]# declare -a names
[root@jfht ~]# names=Jack
[root@jfht ~]# echo ${names[0]}
Jack
[root@jfht ~]# names[1]=Bone
[root@jfht ~]# echo ${names[1]}
Bone
[root@jfht ~]# echo ${names}
Jack
[root@jfht ~]# echo ${names[*]}
Jack Bone
[root@jfht ~]# echo ${#names}
4

直接引用names,相當(dāng)于引用names[0]
[root@jfht ~]# echo ${#names[*]}
2

[root@jfht ~]# echo ${names[@]}
Jack Bone
[root@jfht ~]# echo ${#names[@]}
2

[root@jfht ~]# declare -p names   
declare -a names='([0]="Jack" [1]="Bone")'
[root@jfht ~]#

 

示例五 顯示函數(shù)定義

[root@jfht ~]# declare -F
declare -f add_jar
declare -f add_jar2
declare -f add_jar3
[root@jfht ~]# declare -f
add_jar ()
{
    [ -e $1 ] && CLASSPATH=$CLASSPATH:$1
}
add_jar2 ()
{
    if [ -e $1 ]; then
        CLASSPATH=$CLASSPATH:$1;
    else
        if [ -e $2 ]; then
            CLASSPATH=$CLASSPATH:$2;
        fi;
    fi
}
add_jar3 ()
{
    if [ -e $1 ]; then
        CLASSPATH=$CLASSPATH:$1;
    else
        if [ -e $2 ]; then
            CLASSPATH=$CLASSPATH:$2;
        else
            if [ -e $3 ]; then
                CLASSPATH=$CLASSPATH:$3;
            fi;
        fi;
    fi
}
[root@jfht ~]# declare -f add_jar
add_jar ()
{
    [ -e $1 ] && CLASSPATH=$CLASSPATH:$1
}
[root@jfht ~]# declare -F add_jar
add_jar
[root@jfht ~]# declare -F add_
[root@jfht ~]# declare -F add_*
[root@jfht ~]# declare -F 'add_*'
[root@jfht ~]#

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
shell中變量類(lèi)型
typeset
Bash腳本編程學(xué)習(xí)筆記07:循環(huán)結(jié)構(gòu)體
declare in shell
我使用過(guò)的Linux命令之hostname
linux下查看和添加PATH環(huán)境變量
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服