登录后安全执行tmux

时间:2016-03-14 01:13:44

标签: shell exec tmux fish

我想在为我的用户登录shell时执行tmux。我正在使用fish,但我认为这个问题与任何shell都有关系。到目前为止,我已按照此问题中的建议完成此操作:https://askubuntu.com/questions/560253/automatically-running-tmux-in-fish,具体而言,将以下行添加到config.fish

test $TERM != "screen"; and exec tmux

但是,这个方法有一个主要问题,那就是如果tmux无法启动,也许如果我在.tmux.conf文件中引入了语法错误,那么shell进程会立即退出,把我赶出会议。

有没有办法在新的shell执行中自动运行tmux,我可以:

  • 在“普通”shell执行时捕获错误和回退(即只有fish没有tmux
  • 无需退出登录两次 - 退出tmux,然后再退出fish

2 个答案:

答案 0 :(得分:2)

我认为如果出现配置错误,tmux会以非零(即失败)状态退出,因此您可能会放弃执行并手动退出,例如

if test $TERM != "screen"
    tmux
    and exit
end

但是,请记住,fish 总是来源所有配置文件,因此您需要将其包含在if status --is-login或类似内容中。

答案 1 :(得分:1)

这对我有用:

data

显然,您可能有也可能没有login.fish文件。我喜欢通过将当前会话可能不需要的代码放在单独的文件中来保持我的config.fish精益,所以我还有一个interactive.fish脚本