我想执行 tmux
为我的用户登录 shell 后。我正在使用 fish
,但我认为这个问题与任何 shell 都相关。到目前为止,我已经按照以下问题中的建议完成了此操作:https://askubuntu.com/questions/560253/automatically-running-tmux-in-fish ,具体来说,将以下行添加到我的 config.fish
:
test $TERM != "screen"; and exec tmux
但是,我对这种方法有一个主要问题,那就是如果 tmux
无法启动,也许是因为我在 .tmux.conf
中引入了语法错误文件,shell 进程立即退出,将我引导出 session 。
有没有办法在新的 shell 执行中自动运行 tmux,我可以:
- 捕获错误并回退到“普通”shell 执行(即只有
fish
而没有tmux
) - 不必两次退出登录 - 一次退出
tmux
然后再次退出fish
?
最佳答案
我想如果存在配置错误,tmux 会以非零(即失败)状态退出,因此您可能会放弃 exec 并手动退出,例如
if test $TERM != "screen"
tmux
and exit
end
但是,请记住,fish 始终 获取其所有配置文件,因此您需要将其包装在 if status --is-login
或类似。
关于shell - 登录时安全执行 tmux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35978020/