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

如何解决Shell脚本中捕获gh pr list命令输出为空的问题

问题排查与解决思路

你调整pager配置的操作不会影响脚本捕获结果,GitHub CLI(gh)默认在非交互式终端(脚本执行环境)下会自动禁用pager,这部分配置不需要修改。

  • 先验证命令本身有效性
    直接在交互式终端执行对应命令,确认有返回结果:
    gh pr list --search "review:required user-review-requested:@me"
    
    如果直接执行也无输出,说明搜索条件本身没有匹配的PR,和捕获逻辑无关。
  • 检查仓库上下文
    gh命令默认依赖当前执行路径的Git仓库信息识别目标仓库,如果脚本执行时的工作目录不是对应仓库的本地目录,就会返回空结果。两种解决方式:
    1. 脚本中先cd到目标仓库的本地目录再执行gh命令
    2. 给gh命令显式指定仓库参数:
    output=$(gh pr list --search "review:required user-review-requested:@me" --repo <所有者/仓库名>)
    
  • 捕获错误信息排查执行异常
    你当前的写法仅捕获标准输出(stdout),如果命令执行报错(比如认证失效、网络不通、权限不足),错误信息会输出到标准错误(stderr)无法被捕获,修改捕获逻辑合并stderr和stdout看报错:
    output=$(gh pr list --search "review:required user-review-requested:@me" 2>&1)
    echo "output : $output"
    
  • 验证搜索条件与用户识别
    可以逐步简化搜索条件定位问题,比如先移除review:required只保留用户相关条件测试,也可以将@me替换为你的GitHub用户名硬编码测试,避免脚本环境下@me识别异常。
  • 强制指定输出格式测试
    也可以显式指定输出格式为JSON,避免输出适配问题:
    output=$(gh pr list --search "review:required user-review-requested:@me" --json number,title,url)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:06:03