如何解决shell脚本中export命令无效的问题及分析?

更新于
2026-10-03 22:57:00
2阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计449个文字,预计阅读时间需要2分钟。

问题场景:shell脚本中的export命令无法起作用,测试时需要导入大量临时环境变量,单个export操作又显得繁琐,简化创建shell脚本环境。

问题场景:shell脚本中的export怎么都无法起作用

测试需要导入大量临时的环境变量,单个export又比较麻烦,因此创建shell脚本简化场景:

#!bin/bash export PATH=$PATH:/usr/lib/java/jre export PATH=$PATH:/usr/lib/java/bin

就这么个系统环境变量配置,通过./path.sh 或者 sh path.sh怎么执行都无法设置成功,为什么单独执行export一点问题都没有,但是写到shell脚本中执行,export却怎么都不起作用?

原因

shell是一个进程,每个进程拥有独立的存储空间,进程间数据不可见 一个shell中的系统环境变量(用export定义的变量)只会对当前shell或者他的子shell有效,该shell结束之后,变量生命周期结束(并不能返回到父shell中) export定义的变量,对当前shell及子shell有效;不用export定义的变量,仅对本shell有效 执行脚本时,是创建了一个新的子shell进程运行,脚本执行完成后,该子shell进程自动退出 因此,子shell中定义的系统环境变量是无法作用于父shell的。

阅读全文
标签:原分析和

本文共计449个文字,预计阅读时间需要2分钟。

问题场景:shell脚本中的export命令无法起作用,测试时需要导入大量临时环境变量,单个export操作又显得繁琐,简化创建shell脚本环境。

问题场景:shell脚本中的export怎么都无法起作用

测试需要导入大量临时的环境变量,单个export又比较麻烦,因此创建shell脚本简化场景:

#!bin/bash export PATH=$PATH:/usr/lib/java/jre export PATH=$PATH:/usr/lib/java/bin

就这么个系统环境变量配置,通过./path.sh 或者 sh path.sh怎么执行都无法设置成功,为什么单独执行export一点问题都没有,但是写到shell脚本中执行,export却怎么都不起作用?

原因

shell是一个进程,每个进程拥有独立的存储空间,进程间数据不可见 一个shell中的系统环境变量(用export定义的变量)只会对当前shell或者他的子shell有效,该shell结束之后,变量生命周期结束(并不能返回到父shell中) export定义的变量,对当前shell及子shell有效;不用export定义的变量,仅对本shell有效 执行脚本时,是创建了一个新的子shell进程运行,脚本执行完成后,该子shell进程自动退出 因此,子shell中定义的系统环境变量是无法作用于父shell的。

阅读全文
标签:原分析和