如何修改export.sh脚本,循环读取文本文件替换curl变量?
解决GitHub Runner中批量替换curl变量的脚本问题
你需要修改export.sh脚本中的curl命令,将读取到的auth0和roles变量正确替换到对应位置。原脚本未完成变量代入,以下是修改后的完整脚本:
while read -r auth0 && read -r roles <&3; do # 可选:输出当前处理信息,方便GitHub Runner日志排查 echo "为用户 $auth0 分配角色 $roles" curl --request POST \ --url "https://YOUR_DOMAIN/api/v2/users/$auth0/roles" \ --header 'authorization: Bearer MGMT_API_ACCESS_TOKEN' \ --header 'cache-control: no-cache' \ --header 'content-type: application/json' \ --data '{ "roles": [ "'"$roles"'" ] }' done < final-user-id.txt 3<final-id.txt
修改说明:
- URL部分:将原
USER_ID替换为变量$auth0,并把URL的单引号改为双引号,让bash自动展开变量内容。 - 请求体部分:将
ROLE_ID替换为变量$roles,通过'"$roles"'的单双引号拼接方式,确保变量正确展开的同时维持JSON格式合法性。 - 日志输出:添加
echo语句可在GitHub Runner执行日志中查看每一步处理状态,便于问题排查。
注意事项:
- 确保
final-user-id.txt和final-id.txt行数完全一致,否则循环会在其中一个文件读取完毕后提前终止。 - 在GitHub Runner环境中,需确认两个文件路径正确,可提前用
ls命令验证文件是否存在。 - 若需捕获curl执行失败的情况,可在curl命令后添加
|| echo "为用户 $auth0 分配角色 $roles 失败"来记录错误。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

