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

Bash脚本执行git clone报错‘不支持"https协议’求助(WSL2 Ubuntu)

问题原因及解决方法

根本原因

你遇到的错误是因为jq输出的仓库URL包含双引号,脚本直接读取后传给git clone,导致URL被带上了引号(比如变成"https://github.com/xxx/yyy")。Git会把带引号的字符串当成完整URL,自然识别不了"https这种格式的协议。

解决方案

1. 让jq输出不带引号的原始URL

给jq加上-r参数(raw output模式),这样输出的html_url就不会包含双引号了。

2. 精准提取配置文件中的Token

原来的grep命令可能会误匹配config.toml中其他带引号的内容,建议改成更精准的正则,只匹配Token行的引号内内容。

修改后的完整脚本

#!/usr/bin/env bash

# 精准提取token行中的引号内内容
token=$(grep -oP '(?<=token = ")[^"]+' config.toml)
# 使用jq的-r参数输出不带引号的URL
curl -H "Accept: application/vnd.github.v3+json" -H "Authorization: token $token" https://api.github.com/user/repos | jq -r '.[] | .html_url' | while read url; do 
    git clone "$url" "$1"
done

额外说明

  • 给$url和$1加上双引号,避免URL或目标目录名包含空格时出现问题。
  • 这个问题和WSL2环境无关,纯粹是脚本对字符串的处理不当导致的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:22:42