【问题标题】:Is it possible to update a varible from one shell to another shell? [closed]是否可以将变量从一个 shell 更新到另一个 shell? [关闭]
【发布时间】:2025-12-29 06:40:05
【问题描述】:

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

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

有可能吗?

【问题讨论】:

  • 不,这是不可能的,但如果你告诉我们你想要做什么,那么我们可能会建议你替代方案。
  • 只是想知道可能性....

标签: linux bash shell


【解决方案1】:

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

例如:

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

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

【讨论】:

  • 好主意!不错
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      最近更新 更多