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

Mac端Espanso调用Shell脚本时末尾空格换行被截断如何解决?

解决Mac上Espanso截断Shell脚本末尾换行/空格的问题

Espanso默认会自动修剪Shell脚本输出的末尾空白字符(包括换行、空格),这就是问题的根源。以下是两种直接有效的解决方式:

方法1:修改Espanso匹配规则,禁用末尾修剪

在你的Espanso匹配配置中,给Shell扩展添加trim: false参数,明确告诉Espanso不要修剪输出的末尾空白。示例配置如下:

matches:
  - trigger: ":my_script"
    replace: "{{script_output}}"
    vars:
      - name: script_output
        type: shell
        params:
          cmd: "/Users/xxx/your_script.sh"  # 替换成你的脚本实际路径
          trim: false  # 核心配置:禁用末尾空白修剪

添加该参数后,脚本输出的所有内容(包括末尾的\n\n或空格)都会完整插入到输入位置。

方法2:给脚本输出追加占位符(无需修改Espanso配置)

如果不想调整Espanso配置,可以在脚本输出末尾追加一个特殊标记,之后在Espanso的替换规则里移除这个标记:

  1. 修改你的Shell脚本,在最后一行添加(用-n避免额外生成换行):
echo -n "__KEEP_TRAILING__"
  1. 调整Espanso的匹配规则,替换掉占位符:
matches:
  - trigger: ":my_script"
    replace: "{{script_output|replace('__KEEP_TRAILING__', '')}}"
    vars:
      - name: script_output
        type: shell
        params:
          cmd: "/Users/xxx/your_script.sh"

这样Espanso会保留包含占位符的完整输出,移除占位符后,原本的末尾空白就能被正常保留。


内容的提问来源于stack exchange,提问作者Ruud Peter Boelens

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 21:52:44