将list传递给Shell中的curl命令



如何将受让人列表传递给curl命令?

assignees=("user1","user2")
issue_response=$(curl 
-X POST 
-u :"$GH_TOKEN" 
-H "Accept: application/vnd.github.v3+json" 
"$GITHUB_API_ENDPOINT" 
-d '{"title": "'"$issue_title"'", "body": "'"$issue_subject"'", "labels":["failure"], "assignees":["'"$assignees"'"]}')
echo "$issue_response"

当我跟踪这个POST请求时,我发现了以下问题,它不是一个有效的列表。

"assignees":["user1,user2"]

理想情况下,它应该是

"assignees":["user1","user2"]

有人能告诉我如何解决这个问题吗?

数组赋值assignees=("user1","user2")创建一个数组,但通过与,字符串联的字符串将user1和user2放在第一位。

为了将这两个项都插入到数组中,您应该在它们之间留出一个空格。

assignees=("user1" "user2")

然后您可以通过${assignees[0]} and ${assignees[1]}访问每个项目

要将项目动态地放入curl命令中,您必须在如下的for循环中构建字符串:

assignees=("user1" "user2" "user3")
for i in "${!assignees[@]}"
do outputvar+=""${assignees[$i]}"" # Add assignee to variable
if [ $i -lt $(expr ${#assignees[@]} - 1) ] # Add comma unless it's the last item
then outputvar+=","
fi done
echo $outputvar

最新更新