#!/bin/bash
# 读取文件并将每行添加到列表中
REPO_LIST=()
while read -r line; do
REPO_LIST+=("$line")
done < repo_list.txt
# 处理列表中的每个仓库
for REPO in "${REPO_LIST[@]}"; do
# 搜索Github仓库并获取JSON格式的结果
SEARCH_URL="https://api.github.com/search/code?q=filename:{file_name}+repo:{repo_name}&access_token={github_token}"
SEARCH_URL="${SEARCH_URL/{file_name}/$FILE_NAME}"
SEARCH_URL="${SEARCH_URL/{repo_name}/$REPO}"
SEARCH_URL="${SEARCH_URL/{github_token}/$GITHUB_AUTH_TOKEN}"
RESULT=$(curl -s "$SEARCH_URL")
# 获取结果中的下载链接
DOWNLOAD_URL=$(echo "$RESULT" | jq -r '.items[0].html_url')
# 下载文件到指定文件夹
DOWNLOAD_FOLDER="$HOME/Downloads/$REPO"
mkdir -p "$DOWNLOAD_FOLDER"
curl -sL "$DOWNLOAD_URL" -o "$DOWNLOAD_FOLDER/$FILE_NAME"
done
在上面的例子中,我们使用Bash脚本从文件中读取一个仓库列表,处理每个仓库并搜索特定文件,然后将其下载到指定文件夹中。我们使用curl和jq来发送请求和解析结果。在实际使用中,我们需要将repo_list.txt
,file_name
和GITHUB_AUTH_TOKEN
替换为实际的值。
上一篇:编写一个Bash脚本,定义三个进程,计算出存储设备的最大字节数。
下一篇:编写一个bash脚本,读取一个段落,以$fg_color打印出来,然后读取另一个段落,以下一个$fg_color打印出来,循环执行直到按下CTRL-C。