当前位置:  技术问答>linux和unix

程序中如何使用setenv或者export配置环境变量在当前shell生效

    来源: 互联网  发布时间:2016-02-20

    本文导语:  各位好, 有一个问题一直不甚了了。我写了一个小程序,里面设置了setenv()或者system(export),但是如何让它在当前shell中生效呢。 比如: #include main(){   setenv("PA", "aa",1); } 生成一个 test 可执行文件,运行中是可以读...

各位好,

有一个问题一直不甚了了。我写了一个小程序,里面设置了setenv()或者system(export),但是如何让它在当前shell中生效呢。
比如:
#include
main(){
  setenv("PA", "aa",1);
}
生成一个 test 可执行文件,运行中是可以读出环境变量,但是运行完之后,在当前的shell中已经没有这个变量了。

我不是很了解程序运行的原理, 是否每次执行程序,都会新增一个子shell,等退出就没了呢?

|
程序是当前shell的子进程,在程序中setenv不会影响(也无法影响)到当前shell的环境变量。

|
shell设置环境变量,只对该shell有用,shell退出,环境变量恢复原来样子

|
楼上两位的回答很正确。本质上是因为在shell命令行下执行一个程序是在fork一个进程。子进程不会改变父进程的环境。所以export, setenv,还有C语言的setenv()函数本质上都只会改变当前进程的环境变量。

不过通常解决楼主问题的一个方法是用source命令或. 执行这个脚本,比如 # source xxx.sh或 . xxx.sh,这样脚本里的export命令可以改变当前shell的环境变量。可以试一下。

    
 
 

您可能感兴趣的文章:

  • 程序中获取的环境变量能够根据Linux系统中相应环境变量而变化吗?
  • linux 下设置环境变量 使用了setenv 和putenv 在程序结束以后 发现变量又变回去了
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件? iis7站长之家
  • 关于系统变量,开机启动程序,和定时启动程序
  • java的应用程序中如何定义一个全局变量,在程序的任何地方都可以修改使用?
  • java程序环境变量的问题!
  • linux中大量的全局变量怎么体现结构化的程序设计?
  • unix shell中能否将后台运行程序的输出保存到变量中?
  • export 变量到子程序的问题
  • shell脚本变量与应用程序同步的问题
  • 如何在一段程序同步几个变量??
  • 急!送分求助,java程序中如何读取系统环境变量?
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 用什么函数在程序中获得环境变量的值?
  • 请问,怎么把某个程序的输出赋给shell变量??
  • awk程序中使用shell的变量
  • x86的solaris10下运行程序提示“无效的自变量”
  • 在linux上,为什么不用配置环境变量还能运行java程序呢?
  • 请问在多线程得程序中,函数内的局部变量是否线程安全的
  • (菜鸟飞飞)在脚本里怎么把一个c程序的输出赋值给shell变量
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • 请问:我想让配置文件变更后,发一个信号,从而让守护进程重新加载配置,程序思路大约是怎样的啊?
  • Linux下写服务程序,程序可以使用配置文件动态链接库吗?
  • 大家都用什么工具或者是配置进行远程开发后台程序(C程序)
  • 我想用jsp做个发送邮件的程序,请问需要什么服务器?怎样配置?最好还能提供一个简单的测试程序!谢谢!
  • web页面配置程序
  • 请问如何在WebSphere中配置JSP程序?
  • 读取应用程序配置的类库 EasyConf
  • 修改那个配置文件,可以使程序自启动
  • Linux配置程序求助
  • redhat9如何配置,实现在用户登陆的时候自动执行指定程序。
  • 求教,引导程序的配置文件放在什么地方?
  • 急!哪位朋友在aix系统下配置过apache+tomcat ? 它所使用的apache+tomcat程序,是否可以用在linux下的程序是一样的 ? 在哪儿可以下载
  • 关于下载程序的编写和resin的配置
  • 配置内核的可视化程序是哪个?
  • 我不想把我编的程序放在bin里面,如何配置!
  • Solaris下有没有访问PCI配置空间的应用程序??
  • 如何配置EditPlus 2,使他可以编译Java程序。
  • KDevelop开发C/C++程序,如何配置才能生成so库??
  • Linux服务程序的权限问题,读取不了配置文件~!!!!!!
  • 驱动程序的配置问题
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • windows server2008上PowerBuilder程序系统错误解决方法
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3