Shell脚本定义变量和变量的引用

33 篇文章 1 订阅

一、定义变量

variableName="value"

注意:变量名和等号之间不能有空格,这和编程语言都不一样。

同时,变量名的命名须遵循如下规则:

  • 首个字符必须为字母(a-z,A-Z)。
  • 中间不能有空格,可以使用下划线(_)。
  • 不能使用标点符号。
  • 不能使用bash里的关键字(可用help命令查看保留关键字)。

已定义的变量,可以被重新定义。

variableName="good"

注意:第二次赋值的时候不能写$variableName=“good”,使用变量的时候才加美元符($)。

二、变量的引用

格式:$variableName

变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况: 

for action in Reading Writing Changing
do
    echo "I am good at ${action}Book"
done

如果不给action变量加花括号,写成echo "I am good at $actionBook",解释器就会把$actionBook当成一个变量(其值为空)

代码执行结果就不是我们期望的样子了。推荐给所有变量加上花括号,这是个好的编程习惯。

接下来介绍两个命令:

  • export命令:将使系统在创建每一个新的shell时定义这个变量的一个拷贝。这个过程称之为变量输出。
  • source命令:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句

原理:

  1. 执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出;
  2. 一个shell中的系统环境变量才会被复制到子 shell中(用export定义的变量);
  3. 一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失 (并不能返回到父shell中)。
  4. 不用export定义的变量只对该shell有效,对子shell也是无效的。

通常把环境变量放在开发板的/etc/profile文件里面

export log=4

在其他脚本中直接引用,前面加上环境变量路径  source /etc/profile

可以直接在命令行输入export log=4进行修改

三、符号$后的括号区别

(1)${a} 变量a的值, 在不引起歧义的情况下可以省略大括号。

(2)$(cmd) 命令替换,和`cmd`效果相同,结果为shell命令cmd的输出,过某些Shell版本不支持$()形式的命令替换, 如tcsh。

(3)$((expression)) 和`exprexpression`效果相同, 计算数学表达式exp的数值, 其中exp只要符合C语言的运算规则即可, 甚至三目运算符和逻辑表达式都可以计算。
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值