如何以从调用 shell 继承所有环境变量的方式启动 tmux?

如何以从调用 shell 继承所有环境变量的方式启动 tmux?

设置好开发 shell 后(例如,通过使用特定配置启动 PostgreSQL 集群、导出多个环境变量、通过“安装”一堆应用程序nix-shell),我想启动 tmux,其中调用 shell 中的所有内容都可用。

默认情况下,tmux 会忽略我的环境变量,并且我找到的所有解决方案都说明了如何一一重新声明每个变量。 (虽然可能是错的,因为我也无法破译tmux 手册页的相关部分.)

我喜欢生产中的静态、声明性方法,但有时我只是想快速解决问题。

答案1

@Phluks' 转述评论:

这可以使用“-L”(或“-S”)选项来实现。这些将在当前环境中启动一个新服务器。例如,tmux -L <arbitrary_name>在该套接字上的服务器中创建一个新会话,其环境与调用 shell 中的环境相同。tmux -L <arbitrary_name> list-sessions将列出该特定服务器上的会话等。

例如:

$ export LOFA=27

$ tmux -L miez

...(tmux-session)... $ echo $LOFA
27

相关内容