如果 .bashrc 存在于我的系统上,如何才能仅调用 TMUX?

如果 .bashrc 存在于我的系统上,如何才能仅调用 TMUX?

我在大多数盒子上使用 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 -2tmux$PATH$TMUX

答案3

使用

which tmux && export TERM=xterm-256color && exec tmux

如果存在tmuxwhich tmux将计算为tmux二进制文件的路径,因此为true。如果没有tmux,它将计算为空字符串,因此为false

相关内容