局部变量 全局变量小小记录

设置了局部环境变量后,就能在shell进程的任何地方使用它了。但是,如果生成了另外一个
shell,它在子shell中就不可用。
$ my_variable="Hello World"
$
$ bash
$
$ echo $my_variable
$ exit
exit
$
$ echo $my_variable
Hello World

在这个例子中生成了一个子shell。在子shell中无法使用用户定义变量my_variable。通过命
令echo $my_variable所返回的空行就能够证明这一点。当你退出子shell并回到原来的shell时,
这个局部环境变量依然可用。
类似地,如果你在子进程中设置了一个局部变量,那么一旦你退出了子进程,那个局部环境
变量就不可用。
$ echo $my_child_variable
$ bash
$
$ my_child_variable="Hello Little World"
$
$ echo $my_child_variable
Hello Little World
$
$ exit
exit
$
$ echo $my_child_variable
$

 

在设定全局环境变量的进程所创建的子进程中,该变量都是可见的。创建全局环境变量的方
108 第6 章 使用Linux 环境变量
法是先创建一个局部环境变量,然后再把它导出到全局环境中。
这个过程通过export命令来完成,变量名前面不需要加$。

 

###########################.

在涉及环境变量名时,什么时候该使用$,什么时候不该使用$,实在让人摸不着头脑。
记住一点就行了:如果要用到变量,使用$;如果要操作变量,不使用$。这条规则的一
个例外就是使用printenv显示某个变量的值。

 

 

############.

 

在处理全局环境变量时,事情就有点棘手了。如果你是在子进程中删除了一个全局环境变量,
这只对子进程有效。该全局环境变量在父进程中依然可用。
$ my_variable="I am Global now"
$
$ export my_variable
$
$ echo $my_variable
I am Global now
$
$ bash
$
$ echo $my_variable
I am Global now
$
$ unset my_variable
$
$ echo $my_variable
$ exit
exit
$
$ echo $my_variable
I am Global now
$
和修改变量一样,在子shell中删除全局变量后,你无法将效果反映到父shell中。

 

 

你可能已经注意到,不是所有的默认环境变量都会在运行set命令时列出。尽管这些都是默
认环境变量,但并不是每一个都必须有一个值。

登录shell
当你登录Linux系统时,bash shell会作为登录shell启动。登录shell会从5个不同的启动文件里
读取命令:
 /etc/profile
 $HOME/.bash_profile
 $HOME/.bashrc
 $HOME/.bash_login
 $HOME/.profile
/etc/profile文件是系统上默认的bash shell的主启动文件。系统上的每个用户登录时都会执行
这个启动文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值