繁体   English   中英

从bash脚本将变量重新导出到环境

[英]ReExporting a variable to the environment from a bash script

我有以下bash脚本。

export KEY=A
run_command_that_uses_KEY
...
export KEY=B
run_command_that_uses_KEY

export将变量赋值导出到子shell,即从包含export指令的shell的子进程启动的shell。 命令行环境是脚本外壳程序的父级,因此它看不到变量分配。 如何强制父Shell导出正确的密钥? 我可以在bash脚本本身中获取bash脚本吗?

这是不导出变量的问题。 您可以从bash方面简单地验证它是否正常工作:

export KEY=A
bash -c 'echo $KEY'
export KEY=B
bash -c 'echo $KEY'

您遇到的问题很可能是您的程序是单个实例。

如果您使用firefoxgedit尝试上述操作,您会发现变量第一次起作用,而第二次没有作用。

这是因为第一次,该程序从头开始,而第二次,它只是向旧进程发送一条消息以打开新窗口。

您可以先取消与任务相关的所有进程,然后再再次调用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM