使用${变量名}
或者$变量名
就可以引用变量,$变量名
其实是${变量名}
的省略写法。
要是变量名后边还有其他字符就需要加上{}
,比如helloToBash
这个变量的值是Hello Bash
,而需要输出的字符串是“Hello Bashing”,这样就需要加上{}
,演示如下:echo $helloToBashing
输出为空,而echo ${helloToBash}ing
正常输出为“Hello Bashing”。
变量名=变量值
使用let为变量赋值
将命令赋值给变量
将命令结果赋值给变量,使用$()或者``(两个单反引号)
使用这四种方法创建的变量只针对于当前终端或者说当前Shell生效,这是变量的作用范围,这里拿变量名=变量值
进行验证一下。ps
可以看到当前的Shell的PID为19805
。
whospeak=parent
在父Shell给变量whospeak
赋值为parent
。bash
进入一个子Shell,ps
看一下Shell信息,echo ${whospeak}
可以看到变量whospeak
的值为空,就说明父Shell定义的变量在子Shell中不起作用,在然后重新执行whospeak=child
。
exit
可以退出子Shell,ps
看一下Shell信息,然后再执行echo ${parentString}
。
而bash 脚本文件
执行时,会产生一个子Shell,所以在脚本文件里边定义的变量,在当前Shell也不生效。
context="hello child"
在当前Shell里边定义一个变量context
,然后使用vim contexttest.sh
往contexttest.sh
写入下边的内容:
#!/bin/bash
echo ${context}
最后输入EOF
退出保存。
chmod u+rx contexttest.sh
为脚本添加上读和可执行权限。
bash contexttest.sh
和/root/contexttest.sh
都无法取到变量context
的值。
source contexttest.sh
和. contexttest.sh
可以取到变量context
的值。
而可以使用export 变量
就可以让子Shell使用父Shell定义的变量。export context
执行之后,再次执行bash contexttest.sh
和/root/contexttest.sh
就可以取到变量context
的值。
也可以在定义变量的时候,直接使用export 变量=变量值
。unset 变量名
可以取消环境变量,如下图看到unset testunset
将testunset
给取消。
文章来源:https://www.toymoban.com/news/detail-557969.html
此文章为7月Day 13学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。文章来源地址https://www.toymoban.com/news/detail-557969.html
到了这里,关于Linux学习之变量引用和作用范围的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!