Linux中变量分为 环境变量 、全局变量 和 局部变量.
今天简单了解一下全局变量和局部变量的作用域.
作用范围 | |
---|---|
局部变量 | 仅限制在其命令行所在shell或shell脚本文件中 |
全局变量 | 包括本shell进程及其所有子进程 |
注:
可以使用export内置命令将局部变量设置为全局变量.
查看环境变量使用**env或者printenv**
set命令:全局变量、局部变量、用户定义变量,按照字母顺序对结果排序
下面给出例子了解shell变量作用域:
局部变量:
//在当前shell中定义两个变量
devil1=Linux
devil2=unix
//引用变量的值
echo $devil1 $devil2
//查看当前shell的PID
echo $$
//bash调用子shell
bash
//再次查看当前shell的PID,如果跟之前查看的不同则已进入子shell
echo $$
//查看变量的值
echo $devil1 $devil2
//此时显示空白,说明上面两个变量值为上一个shell的局部变量
全局变量:
接上面局部变量
//退出当前shell
exit
//查看当前shell的PID
echo $$
//跟最开始的PID相同证明已返回到主shell
//将局部变量devil2设置为全局变量
export devil2
//此时再次进入子shell查看是否能输出devil2
bash
echo $devil1 $devil2
//此时只显示devil2的值而不显示devil1的值
- 上机实操如图所示:
变量路径修改:
这里我们先赋给变量BOX路径 /etc/alsa
cd
BOX=/etc/alsa
echo $BOX
- 演示:
首(尾)部插入法
(以添加路径/tmp为例):同上
//将路径/tmp添加到BOX前面
BOX=/tmp:$BOX
echo $BOX
- 演示:
//将路径/tmp添加到BOX后面
BOX=$BOX:/tmp
echo $BOX
- 演示:
覆盖法:
用export命令修改路径
BOX原路径为/etc/alsa
将路径修改为/root/etc/alsa/tmp
//查看BOX路径
echo $BOX
将原路径覆盖
export BOX=/root/etc/alsa/tmp
//再次查看BOX值
echo $BOX
//发现已经修改完成
- 演示: