bash - 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 窗口的名称?
解决方案
感谢tripleee
,ceving
我重写了我的脚本:
heroku(){
windowname=$(tmux display-message -p '#W')
trap "{ tmux rename-window "$windowname" }" EXIT
tmux rename-window "heroku $*"
command heroku "$@"
tmux rename-window "$windowname"
}
推荐阅读
- typescript - aws cdk 在本地调用共享的纱线工作区依赖项
- php - 尝试访问值类型为 null 的数组偏移量
- mysql - 如何将一个表中的单个值与另一个表中的另一个值列表进行比较
- java - 解析平台android添加/放置单独的行而不是数组行
- ios - 用 cocoapods 安装 Geofirestore?
- twitter-bootstrap - Bootstrap 4中的分页符
- c - 如何将指针返回到此二叉树中的特定节点?
- arrays - 数组数组
- python - 为什么我的 PyCharm 控制台不运行我的函数?
- certificate - websocket ERR_CERT_AUTHORITY_INVALID