是否有可能从一个shell更新variables到另一个shell?

我们如何将一个variables从一个shell更新到另一个shell呢?

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

有可能吗?

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

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

例如:

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

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

但是,您可能需要切换到鱼壳 。 它给你所谓的通用变量 ,它可以在几个(即运行)鱼壳的进程之间共享。 这是通过fishd用户守护进程(与每个fish进程进行通信)实现的。