我在大多数盒子上使用 tmux,但不是全部。
我的 .bashrc 文件中有以下行:
[ -z "$TMUX" ] && export TERM=xterm-256color && exec tmux
如果 tmux 存在,它会调用它。
我想法这[ -z $TMUX ]
意味着只有 tmux 存在时才会使用它。
然而在另一个系统上,没有 tmux,我得到
-bash:执行:tmux:未找到
并且登录尝试失败
在我的主系统上我看到
$ echo $TMUX
/private/var/folders/ks/266xy5lj7x35gfj4csc66444b48rvq/T/tmux-373580663/default,55084,4
我也尝试过[ $TMUX ]
(即没有-z
)但这没有帮助
我也在寻找一个适用于 Ubuntu 和 OSX 的强大解决方案
答案1
您echo $TMUX
在会议期间这样做了吗tmux
?因为TMUX
仅在会话中设置。
尝试一下:
[ -z "$TMUX" ] && command -v tmux >/dev/null && TERM=xterm-256color exec tmux
答案2
tmux
好的,所以如果您只想在它存在于时启动$PATH
和当它尚未运行时,您可以执行以下操作:
command -v tmux >/dev/null && ${TMUX+:} TERM=xterm-256color exec tmux
还更短:
tmux -c "${TMUX+!} :" 2>/dev/null && exec tmux -2
第二个要求如果未设置则tmux
返回 0,如果为 true,则 shell 执行强制 256 色。仅当可以运行且环境变量不存在时,它才会返回 true 。${TMUX}
&&
tmux -2
tmux
$PATH
$TMUX
答案3
使用
which tmux && export TERM=xterm-256color && exec tmux
如果存在tmux
,which tmux
将计算为tmux
二进制文件的路径,因此为true
。如果没有tmux
,它将计算为空字符串,因此为false
。