今天学习bash里的变量,变量是什么?学过编程语言的同学应该很容易理解,就是一字符串装了一些比较容易变动的数据。bash里的变量其实也是这样。
变量又可以分为:
-
系统变量,也就是全局变量,系统帮我们设置好的。
-
自定义变量,也就是局部变量,是我们用户自定义设置的。
查看Linux里的系统变量,可以输入env(environment)查看,如图:

可以看到我们的系统变量都是大写的
介绍一些常见的系统变量所代表的意思:
- HOME:用户的主文件夹。我这里的是/root.
- SHELL:告诉我们使用的是哪一个shell,我这里使用的是bash:/bin/bash。
- LANG:所使用的语言体系。我这里是zn_CN.UTF-8。
- PATH:执行文件所按照的路径。
知道系统变量,那如何查看我们的自定义变量呢?
我们可以试试 set 命令
set 命令会把环境变量和系统变量都显示出来。
1.下面是变量的设置和显示,取消:
设置自定义变量:

注意点:这里要注意 ‘=’ 符号,左右不能有空格,如果有空格就会这样如图:

有空格会显示找不到命令!!!
显示一个系统变量:

取消变量:
取消变量使用命令unset:

2.变量的有效范围
- 系统变量,因为内存配置好了,所以可以在子进程中使用
-
自定义变量,在子进程中无法使用。
如图:
图片.png
可以看到系统变量没有收到影响,但自定义变量在子进程中无法使用了。
但当我退出时,就可以使用。
3.环境变量,自定义变量的转换
自定义变量 => 系统变量:
方法:
使用export方法
使用declare -x 方法
如图:


环境变量 ==> 自定义变量:
方法:
* declare +x var
如图:


网友评论