是否可以将变量从一个shell更新到另一个shell?

时间:2013-12-23 06:52:18

标签: linux bash shell

我们如何将变量从一个shell更新到另一个shell?

假设我打开了2个Putty会话,我想在第一个SHELL中设置一个变量,我需要从第二个SHELL访问该变量。

有可能吗?

3 个答案:

答案 0 :(得分:2)

您可以将变量保存到脚本中。 然后在第二个会话中获取脚本。

例如:

# session 1
hello=world
echo "hello=$hello" > /tmp/var.sh

# session 2
. /tmp/var.sh
echo $hello

答案 1 :(得分:1)

由于每个进程的环境都受到保护,因此无法共享环境变量。我建议在共享文件系统上使用一个文件来存储你想要的变量,并在你需要知道新值是什么时读取该文件。

答案 2 :(得分:0)

通常不可能,因为每个shell(和每个进程)都有自己的环境。请参阅execve(2)

但是,您可能希望切换到fish shell。它为您提供了所谓的universal variables,它可以在fish shell的几个实例(即进程运行)之间共享。这是通过fishd用户守护程序实现的(每个fish进程都与之通信)。