TMUX 设置会话的环境变量

2023-12-19

我的工作环境是,我有多个项目,并且每个项目中都有许多脚本,这些脚本使用设置为特定于该项目的值的环境变量。

我想做的是为每个项目使用单独的 tmux 会话并设置变量,以便为该会话中的所有窗口设置它们。

我尝试使用 set-environment 选项,该选项使用 -g 选项工作,但随后为连接到该服务器的所有会话设置变量。

如果没有 -g 选项,我在使用 show-environment 时会看到它的设置,但无法访问 shell 中的变量。

有人想出解决这个问题的方法吗?

使用 tmux 1.8 和 tcsh


我想出了一个方法来做到这一点。我正在使用 tmux 2.5。

背景

在 tmux 手册页中,它指出有两组环境变量:全局变量和每会话变量。当您创建新的 tmux 会话时,它将把两个组合并在一起,并成为会话中可用的环境变量集。如果环境变量被添加到全局组中,它们似乎会在所有打开的会话之间共享。您想要将它们添加到每个会话组中。

Do this

第 1 步:创建 tmux 会话。

tmux new-session -s one

步骤 2:将环境变量添加到每会话组。

tmux setenv FOO foo-one

这会将环境变量添加到每个会话的环境变量集中。如果您输入tmux showenv,您将在输出中看到它。但是,它不在当前会话的环境中。打字echo $FOO不会给你任何东西。可能有更好的方法来做到这一点,但我发现最简单的方法是手动导出:

export FOO='foo-one'

第 3 步:创建新窗口/窗格

现在,每次在当前会话中创建新窗口或窗格时,tmux 都会从每个会话组中获取 FOO 环境变量。

自动化

我使用 bash 脚本自动创建利用这些环境变量的 tmux 会话。这是我如何自动化上述操作的示例:

#!/bin/bash
BAR='foo-one'
tmux new-session -s one \; \
  setenv FOO $BAR \; \
  send-keys -t 0 "export FOO="$BAR C-m \; \
  split-window -v \; \
  send-keys -t 0 'echo $FOO' C-m \; \
  send-keys -t 1 'echo $FOO' C-m
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TMUX 设置会话的环境变量 的相关文章

  • tmux自用

    创建新的 tmux new s NAME 回到 tmux attach t NAME
  • tmux使用手记

    tmux 指令操作 session 会话 xff1a session是一个特定的终端组合 输入tmux就可以打开一个新的session tmux new s session name 创建名为 session name 的 tmux ses
  • Tmux 入门

    本指南将介绍 Tmux 的安装和基本用法 以帮助您入门和运行 什么是 tmux Tmux 是终端多路复用器的替代品GNU 屏幕 换句话说 这意味着您可以启动 Tmux 会话 然后在该会话中打开多个窗口 每个窗口占据整个屏幕 并且可以分割成矩
  • tmux系列:2、tmux会话

    tmux系列 2 tmux会话 文章目录 tmux系列 2 tmux会话 1 前言 2 创建会话 3 状态栏 4 命令和标志 5 命令提示符 6 附加和分离 7 会话清单 8 完全杀死tmux 9 总结一下 1 前言 其实最开始时候我用tm
  • 工具篇——1、TMUX

    目录 工具篇 一 TMUX 1 安装 2 概念 3 具体操作 3 1 会话 3 2 窗口 3 3 窗格 4 TMUX 配置 5 结对编程 工具篇 本系列专门用于记录一些软件或者小工具的使用 工欲善其事必先利其器 拥有称心如意的工具 可以大大
  • iTerm 2 不支持 .tmux.conf 中声明的键绑定

    我正在使用最新稳定版本的 iTerm2 2 0 和最新的 Homebrew 版本的 tmux 1 9a 不幸的是 我的键绑定声明于 tmux conf不能在 集成模式 下使用 iTerm2 tmux 组合 即当 iTerm2 接管 tmux
  • TMUX 设置会话的环境变量

    我的工作环境是 我有多个项目 并且每个项目中都有许多脚本 这些脚本使用设置为特定于该项目的值的环境变量 我想做的是为每个项目使用单独的 tmux 会话并设置变量 以便为该会话中的所有窗口设置它们 我尝试使用 set environment
  • 如何根据是否设置环境变量来设置和使用 tmux.conf 中的变量

    免责声明 我完全意识到 我在下面描述的问题有一些解决方案 涉及编写和调用与正在运行的 tmux 服务器交互的 shell 脚本 或者在启动 tmux 服务器之前设置必要的环境变量 我专门发布这个问题看看是否可以解决这个问题without使用
  • 在 tmux 下使用 $TERM='screen-256color' 时,HOME 和 END 键不起作用。为什么?

    我已经设置了 tmux TERM被设置为screen 256color正确 这工作正常 并且颜色设置正确 但是它阻止我发送HOME and END终端的密钥 而是打印为F n and H n 我应该补充一点 home 似乎可以在 irssi
  • 当没有正在运行的会话时,Tmux 无法连接到“tmux ls”上的服务器错误

    只需编写一个快速循环 在登录服务器时列出现有的 tmux 会话 具体取决于是否安装了 tmux 通过 CentOS 上的 bashrc if rpm q tmux then echo e TMUX sessions running n ec
  • 在窗格/窗口之间共享历史记录

    有没有办法在 tmux 会话中的窗格 窗口之间共享 shell 命令历史记录 将这些选项添加到您的 zshrc setopt inc append history 我还发现hist ignore dups hist ignore space
  • 如何从 tmux 会话获取 stdout 和 stderr?

    我正在linux系统中编写一个示例python程序 我在用tmux https linux die net man 1 tmux创建会话并在 tmux session 中执行另一个脚本 我想将 stdout 和 stderr 从 tmux
  • 我该如何将 HOME 键绑定为 tmux 前缀?

    有没有办法在 tmux conf 中执行此操作 如果其他一切都配置正确 那么应该很简单 只需将其放入您的 tmux conf set option g prefix Home 注意 除非您手动 获取 您的 tmux conf 对文件的更改仅
  • 如何将vim(通过tmux)绑定到Cmd键

    我通常使用 macvim 并且使用 macs 命令键有许多键绑定 我正在尝试切换到 tmux 但这些绑定都不起作用 有关如何修改我的 tmux config 或 vimrc 以恢复这些绑定的任何提示 你是否有机会使用
  • 当在 tmux 会话中打开的 vim 进程上移动光标时,为什么它时不时地会留下幽灵字符的痕迹 - ^[OB,^[OA?

    如果我向上翻页和向下翻页 这些就会消失 为什么会发生这种情况以及如何纠正 https i stack imgur com DnMYl png https i stack imgur com DnMYl png 我最近摆弄了我的 vimrc
  • 如何在tmux中获取send-keys的结果?

    我正在使用 tmux 来运行服务器控制台 要检查控制台是否正在应答 我想使用send keys在控制台上运行命令 tmux send keys t mysess mywin show info Enter 实际上 我目前正在将完整的控制台输
  • Home/End 键在 tmux 中不起作用

    我目前正在使用 tmux 和 xterm 256color TERM 变量 当在 tmux 下的 bash 中时 按 home end 将插入波形符 在 tmux 之外 home end 键工作正常 使用 cat 和 tput 我可以看到生
  • 运行 tmux 时映射箭头键

    这些键映射在 tmux 中停止工作 在我的 vimrc 我有 nmap
  • 使用 fzf-tmux 进行快速窗口切换的 tmux 脚本给了我错误的选项

    我编写了以下内容 它允许我使用 fzf 切换 tmux 窗口 tmux list windows F I W fzf tmux cut d f 1 xargs tmux select window t 当我在 shell 中运行它时 它工作
  • Tmux:如何将功能键绑定到命令?

    如何绑定功能键 例如 F1 它会生成ESC O P 到 tmux 命令 例如 下一个窗口 ctrl B n 上下文 在 mac 上运行的 ssh 进入 Linux 上的 tmux 会话 我压着fn F1在 Mac 键盘上生成ESC O P

随机推荐