若要把一個(gè)變量聲明為只讀,請(qǐng)使用如下語(yǔ)句:
declare -r varname
假定有以下腳本:
#!/bin/bash
a=13
declare -r a
echo $a
a=14
echo $a
運(yùn)行時(shí),第二個(gè)賦值語(yǔ)句將不起作用:
$ sh decl.sh
13
decl.sh: line 6: a: readonly variable
若要聲明變量只接受數(shù)值(整數(shù)),請(qǐng)使用如下語(yǔ)句:
declare -i varname
假定有以下腳本:
#!/bin/bash
declare -i a
a=12
echo $a
a=hello
echo $a
運(yùn)行時(shí),第二個(gè)賦值語(yǔ)句沒(méi)有把出現(xiàn)在語(yǔ)句中的字符串"hello"而是將0賦給變量:
$ sh decl2.sh
12
0
declare語(yǔ)句還有其他選擇:-a選項(xiàng)可用來(lái)把一個(gè)變量聲明為一個(gè)數(shù)組,但這沒(méi)有必要。所有變量都不必顯式定義就可以用作數(shù)組。事實(shí)上,在某種意義上,似乎所有變量都是數(shù)組,而且賦值給沒(méi)有下標(biāo)的變量與賦值給"[0]"相同。假定有以下腳本:
#!/bin/bash
a=12
echo ${a[0]}
b[0]=13
echo $b
運(yùn)行得:
$ sh arr.sh
12
13
如需更多選項(xiàng),請(qǐng)參考bash幫助手冊(cè)(先搜索"^SHELL BUILTINS",然后搜索"declare")。
聯(lián)系客服