Shell中的自定义变量

Shell脚本中的变量不支持数据类型(整型、字符型等),任何赋值给变量的值都被Shell解释为一串字符。
变量的命名需要遵循以下规则。
(1)命名只能使用字符、数字和下划线,首个字符不能以数字开头。
(2)命名不能出现空格,可以使用下划线。
(3)不能使用Shell中已经定义的关键字。
(4)通常使用全大写的变量,便于识别。
变量赋值的格式如下所示。

变量名=

上述赋值的格式中,需要注意的是,变量赋值时,等号两边不能出现空格。
在Shell脚本中使用变量时,需要在变量前面加“$”符,表示引用,如例所示。

 1	#! /bin/sh
 2	 
 3	VAR="hello world"      #对变量VAR赋值
 4	echo $VAR                #输出变量VAR的值,引用变量,使用$

Shell脚本中变量的赋值,遵循从右向左的顺序,如例所示。

 1	#! /bin/sh
 2	 
 3	X=a
 4	Y=$X
 5	echo $Y    

上例的运行结果如下所示,变量Y的值为a,验证了赋值的顺序为从右向左。

linux@ubuntu:~/1000phone$ ./test.sh 
a
linux@ubuntu:~/1000phone$

Shell编程时,需要特别注意变量与其他字符混淆的问题,如例所示的代码。

 1	#! /bin/sh
 2	
 3	NUM=1
 4	echo "$NUMnd"    

上例的运行结果如下,可见运行无输出内容。

linux@ubuntu:~/1000phone$ ./test.sh 
                                           //无输出内容
linux@ubuntu:~/1000phone$

上述输出结果,并没有按照程序编写思维,输出预想的字符串“1nd”。Shell在执行时会搜索变量NUMnd,然而脚本文件中的NUMnd是没有任何赋值的。因此,上例中需要使用大括号来通知Shell打印的变量是NUM。

 1	#! /bin/sh
 2	
 3	NUM=1
 4	echo "${NUM}nd"     #输出变量为NUM

如上例所示,使用大括号选中需要输出的变量,输出结果如下。

linux@ubuntu:~/1000phone$ ./test.sh 
1nd                                  //输出正确结果
linux@ubuntu:~/1000phone$
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值