[英]Bash expansion in a while loop
我正在嘗試多次運行 bash 命令,使用文本文件中的行作為參數:
while read -r line;
do
curl -X POST \
-u JLCarveth \
-H "Content-Type: application/json" \
-H "Authorization: token [...]" \
-H "Accept: application/json" \
https://myurl.com/api/v1/user/repos \
-d '{"name":"$line"}';
printf "Done $line\n";
done < repo_names.txt
問題是,API 沒有接收到name
參數。 如何正確地將line
值替換為 JSON 格式?
使用jq
之類的工具來確保生成正確的 JSON,無論line
的值如何。
while read -r line;
do
curl -X POST \
-u JLCarveth \
-H "Content-Type: application/json" \
-H "Authorization: token [...]" \
-H "Accept: application/json" \
https://myurl.com/api/v1/user/repos \
-d "$(jq -n --arg n "$line" '{name: $n}')"
printf 'Done %s\n' "$line"
done < repo_names.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.