You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.xbindkeysrc绑定命令并让终端执行后自动关闭?

解决方案

问题1:终端执行完命令后自动关闭

要让终端执行完命令后自动关闭,核心是确保终端启动的shell在完成所有操作后退出。在sh -c的命令末尾添加exit,就能让shell执行完逻辑后退出,终端随之关闭。

问题2:将完整命令整合到.xbindkeysrc

.xbindkeysrc的命令需要正确处理引号嵌套,避免解析错误导致无法触发。外层用双引号包裹整个终端启动命令,内层用单引号包裹shell要执行的逻辑,同时避免提前展开命令(不要用$()直接在外层展开)。

最终可用的.xbindkeysrc条目

"gnome-terminal -- sh -c 'pass=$(keepassxc-cli show -sa password path/to/MYKEEPASS.kdbx MY_ENTRY) && printf "%s\n" "$pass" | sudo openconnect --background --protocol=gp https://my.url --user=MYUSERNAME --passwd-on-stdin --script /etc/vpnc/vpnc-script; exit'"

关键细节说明

  • 引号嵌套:外层双引号适配.xbindkeysrc的语法,内层单引号包裹shell命令,避免特殊字符和管道被错误解析。
  • 可靠的密码传递:用printf "%s\n" "$pass"替代echo $pass,避免密码含特殊字符(如换行、-开头)时出现异常。
  • 解决vpnc-script错误:添加--script /etc/vpnc/vpnc-script指定脚本路径,解决sudo执行时环境变量缺失导致的脚本找不到问题(如果你的脚本路径不同,替换为对应路径即可)。
  • 确保终端关闭:exit命令确保shell执行完所有操作后立即退出,终端随之关闭;openconnect的--background参数让VPN后台运行,不会阻塞shell执行后续命令。

内容的提问来源于stack exchange,提问作者Miguel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 05:27:11