首页 百科知识 用户自定义变量

用户自定义变量

时间:2023-10-09 百科知识 版权反馈
【摘要】:变量赋值后,用户通过在变量名前加符号$来引用该变量,例如,为引用变量myname,应该使用$myname形式。变量引用的结果是使用变量的值来替代变量引用,此过程称为变量替换,例如:上面的第一行命令给变量myname赋值,第二行命令将变量myname的值显示在屏幕上。如果变量名出现在一个字符串的中间,该变量前后还有一些其他的字符,为了使变量名与其前后的字符分开,需要用花括号把变量名括起来。

10.3.1 用户自定义变量

Shell变量不需要专门的说明语句,通过赋值语句即可完成变量的说明及赋值。

(1)变量赋值

在shell中,赋值语句的语法格式如下所示:

name=string

其中name为变量名,string是赋给变量的字符串值,而符号“=”则为赋值号,例如:

$myname=zheng

$count=10

注意,在赋值语句中,赋值号的两边不允许有空格符。

(2)变量引用

变量赋值后,用户通过在变量名前加符号$来引用该变量,例如,为引用变量myname,应该使用$myname形式。变量引用的结果是使用变量的值来替代变量引用,此过程称为变量替换,例如:

$myname=zheng

$echo $myname

zheng

上面的第一行命令给变量myname赋值,第二行命令将变量myname的值显示在屏幕上。命令执行时,字符$会通知Shell它后面引用的是变量的值而不是变量的名字或者一般的字符串。

如果在赋给变量的值中要包含空格、制表符或换行符,应该使用双引号将该字符串括起来,例如:

$ab=“how are you”

$echo $ab

how are you

对于未赋值的变量, Shell将其值看成空字符串,例如:

$echo $a is a string

is a string

$a=aaa

$echo $a is a string

aaa is a string

在赋值语句中,当赋值号右边没有给出字符串时,变量的值也为空字符串,例如:

$abc=

$echo $abc is a string

is a string

如果变量名出现在一个字符串的中间,该变量前后还有一些其他的字符,为了使变量名与其前后的字符分开,需要用花括号把变量名括起来。若不使用花括号将变量名与其前后的字符分开,shell可能误将变量名与其前后的字符合在一起视为一个新变量,例如:

$UNIX=SystemV

$echo ${UNIX}tm is a string

SystemVtm is a string

$echo $UNIXtm is a string

is a string

上例中,shell将UNIXtm看成了一个变量名,由于前面没有给该变量赋值,因此其值为空串。

(3)只读变量

有时,我们希望在说明一个变量并对它赋值后就不再改变它的值,这时可以将变量定义为只读变量,其语法格式如下:

readonly namelist

例如:

$a=2

$readonly a

$echo $a

2

$a=3

a: readonly variable

查看当前定义的只读变量,可以使用不带参数的readonly命令,例如:

$readonly

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈