linux 之环境变量

测试

a.sh

 

b.sh

结果: 没有A=A ,也没有 a=a

 

结果: 有A=A, 没有 a=a

结论

  1. 环境变量和变量是不同的, /proc/pid/environ 中只是“环境”变量,不同变量是不会体现在该文件中的
  2. export导出的变量,在后续执行的shell进程中可以看到,不导出则看不到
  3. 尽管b.sh中export了b变量,a.sh中也是看不到的,因为b.sh是一个新的进程

脚本中执行其它脚本的几种方法:

  1. 如上面a.sh中执行b.sh ,可以理解是a.sh调起了一个新的进程来执行b.sh的
  2. 在a.sh中如果用source(或 . )来执行 b.sh ,则b.sh中将可以看到A,也可以看到a,因为这样的话b.sh并不是一个新的进程,而是在当前进程中执行的
  3. 在a.sh 中如果用exec来执行b.sh,则b.sh经在当前进程中执行,但是不同于source的是,b.sh下面的命令将不会被执行,进程将随着b.sh执行的结束而结束

 

 

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据