首页 > 解决方案 > Bash 脚本不会在超时时恢复名称

问题描述

我有一个小的 Bash 脚本来重命名heroku cli的 tmux 窗口,并在我关闭heroku会话时将其重命名。

heroku(){
  windowname=$(tmux display-message -p '#W')
  tmux rename-window "heroku $(echo "$@")"
  command heroku "$@"
  tmux rename-window "$windowname"
}

但是heroku有一个超时功能,如果停留时间过长会关闭连接。在这种情况下,我的脚本不会恢复 tmux 窗口的名称。

如何捕捉超时并恢复 tmux 窗口的名称?

标签: bashshell

解决方案


感谢tripleeeceving我重写了我的脚本:

heroku(){
  windowname=$(tmux display-message -p '#W')
 
  trap "{ tmux rename-window "$windowname" }" EXIT

  tmux rename-window "heroku $*"

  command heroku "$@"

  tmux rename-window "$windowname"
}

推荐阅读