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

时间:2014-06-11 23:00:08

标签: linux bash shell unix

我有以下bash脚本。

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

export将变量赋值导出到子shell,即作为包含export指令的shell的子进程启动的shell。命令行环境是脚本shell的父级,因此它不会看到变量赋值。如何强制父shell导出正确的密钥?我可以在bash脚本本身或其他东西中获取bash脚本吗?

1 个答案:

答案 0 :(得分:3)

这不是导出变量的问题。您可以从bash方面轻松验证这是否正常:

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

您的案例中的问题更可能是您的程序是单个实例。

如果您使用firefoxgedit尝试上述操作,您会发现变量首次运行,但不是第二次运行。

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

您可以尝试在再次调用任务之前杀死与该任务相关的所有进程。