关于 PTAH 在 shell script 中的作用

本文探讨了Linux shell脚本中变量的作用域概念,重点介绍了如何通过export命令将局部变量变为可在子shell中访问的环境变量。并通过示例说明了export与非export变量在不同shell间的可见性差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于鸟哥中脚本中export PATH的解释:
转载于: http://blog.csdn.net/chenchen410/article/details/39183517
用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell。当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。从这种意义上来说,用户可以有许多 shell,每个shell都是由某个shell(称为父shell)派生的。
在子 shell中定义的变量只在该子shell内有效。如果在一个shell脚本程序中定义了一个变量,当该脚本程序运行时,这个定义的变量只是该脚本程序内的一个局部变量,其他的shell不能引用它,要使某个变量的值可以在其他shell中被改变,可以使用export命令对已定义的变量进行输出。 export命令将使系统在创建每一个新的子shell时定义这个变量的一个拷贝,但只对定义环境变量的shell中调用的子shell有效,对于其他独立的shell不可见。
[cpp]  view plain  copy
  1. [@entmcnode15] try $ cat export1.sh  
  2. #!/bin/bash  
  3. # Experimenting with variable scope  
  4. export var1="~projects"  
  5. var2='global 2'  
  6. echo var1 is $var1 : var2 is $var2  
  7. ./printfile  
  8. [@entmcnode15] try $ ./export1.sh   
  9. var1 is ~projects : var2 is global 2  
  10. in printfile var1 is ~projects,var2 is   
  11. [@entmcnode15] try $ cat printfile   
  12. echo "in printfile var1 is $var1,var2 is $var2"  
  13. [@entmcnode15] try $ echo $var1  
  14.   
  15. [@entmcnode15] try $   
解释:因为var1用了export,var2未用,所以在新打开的printfile.sh中var1可见,var2不可见。但在terminal中两个变量都不可见。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值