赞
踩
bash shell用一个叫作环境变量 (environment variable)的特性来存储有关shell会话和工作环境的信息(这也是它们被称作环境变量的原 因)。这项特性允许你在内存中存储数据,以便程序或shell中运行的 脚本能够轻松访问到它们。这也是存储持久数据的一种简便方法。
在bash shell中,环境变量分为两类 :
1、 通过 env 这个命令可以查看系统的所有全局变量 。系统默认的全局变量名,基本都是大写的。 如果是自己创建的局部变量或是shell脚本,最好就值使用小写字母。
2、我们也可以通过echo $SHELL
或者printenv SHELL
这样的方式,来查看单个变量的值 。(SHELL是我们想知知道的变量的名字)
1、局部环境变量只能在定义它们的进程中可见
可以通过echo $变量名
这种格式来打印出局部变量名。 或者set | grep 变量名
这种方式 ,值得注意的是env 和 printenv 这种方式只打印全局变量。
2、设置局部环境变量
在shell 进程里设置环境变量的操作和給变量赋值类似,使用 一个等号就可以 my_var= hello_world
,比较特别的是变量名、等号和值之间不能有空格。否则bash shell就会把值变量的值my_var当成一个单独的命令
3、 局部环境变量的使用范围
同理,如果在子进程中设置了一个局部环境变量,那么一旦你退出了子进程,那个局部环境变量就不可用
如果我们想在父shell 进程中的环境变量,可以被 子shell进程调用,那么就要把这个环境变量设置成全局环境变量
1、设置全局环境变量,是通过export 命令 来设置的,比如:
export my_var="I am Global now"
或者分两步
my_var="I am Global now"
export my_var
2、 设置完成后,我们在子进程中也可以使用这个全局环境变量了。
但是有注意的点是 ,如果我们在父进程里设置全局变量,子进程可以使用,但是子进程设置的全局变量,父进程是没办法调用的。全局环境变量也只能是从父到子传这种场景如下:
3、当父shell定义一个全局环境变量,在子shell中,这个全局环境变量被重新定义了一次,退出子shell, 这个全局环境变量还是之前的值。
4、 删除环境变量
删除环境变量我们使用unset + 变量名 .我们在读取变量的时候要加上$这个提取符号。
总结:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。