linux脚本里运行环境变量,不重启终端,重新登陆用户,让其一直有效,在脚本退出后,能被其他程序访问
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux脚本里运行环境变量,不重启终端,重新登陆用户,让其一直有效,在脚本退出后,能被其他程序访问相关的知识,希望对你有一定的参考价值。
linux 在脚本里运行 source .bashrc或者./.bashrc
只会让当前脚本里有效,但是脚本结束你在env 环境变量就又变回来了
如何让环境变量一直有效,不是退出脚本后,重启终端,重登用户。
本来在控制台里. .bashrc就可以让环境变量永久有效了,但是在脚本里,如何产生相同功效
2. 如果不允许source脚本, 可以在脚本中调用gdb修改父进程的环境变量。
如下脚本设置环境变量A为"B":
#!/bin/sh
gdb /proc/$PPID/exe $PPID <<END >/dev/null
call setenv("A", "B", 0)
END 参考技术A 感觉这比较无意义。当你运行source时,启动的是另进程,source .bashrc只会改变,脚本内部的env,结束后就没了。追问
对啊,我就是要,结束后能让外部的也生效,有这种方法么
参考技术B 直接在脚本里用命令把变量追加到~/.bashrc里面:echo A=\"asdada\" >> ~/.bashrc
再source一下。
Linux终端里除了cd命令,其他命令都报没有那个文件或目录
具体是我在bash.bashrc里修改了环境变量。然后source了。然后手误又输入了一下bash。然后dir.ls等各种命令他都回复没有那个文件和目录。包括我想sudo gedit打开bash.bashrc把修改去掉他也不识别。退出,重启,都不管用。现在打开终端就出现下面的几句。bash:lesspipe 没有那个文件或目录。bash:dircolors没有那个文件或目录
Bash:uname没有那个文件或目录。
Bash:ls no such file
以上是关于linux脚本里运行环境变量,不重启终端,重新登陆用户,让其一直有效,在脚本退出后,能被其他程序访问的主要内容,如果未能解决你的问题,请参考以下文章
linux下创建一个脚本,双击后,点“在终端中执行”没反映,但点运行脚本执行,请问是为啥?
Linux终端里除了cd命令,其他命令都报没有那个文件或目录