forループ内のPOSTカーリング

forループ内のPOSTカーリング

シングルユーザー作成には次のものが適用されます。

curl -X POST  --anyauth -u admin:admin --header "Content-Type:application/json" \
  -d '{"user-name":"joe",
       "password": "cool",
       "role": [ "rest-reader", "rest-writer" ]
      }' \
  http://localhost:8002/manage/v2/users

ただし、forループ内に複数のユーザー(一度に1人)を作成すると失敗します。

for i in john frank bob
do
  curl -X POST  --anyauth -u admin:admin --header "Content-Type:application/json" \
  -d '{"user-name":"$i",
       "password": "$i",
       "role": [ "rest-reader", "rest-writer" ]
      }' \
  http://localhost:8002/manage/v2/users
done

私は何が間違っていましたか?

ベストアンサー1

データ文字列は一重引用符で囲まれていますが、変数は一重引用符内では拡張されません。
aを使用して開く一重引用符を閉じ、二重'引用符変数を追加してから、次を使用して一重引用符で囲まれた"$i"文字列を再度開くことができます'

for i in john frank bob
do
  curl -X POST  --anyauth -u admin:admin --header "Content-Type:application/json" \
  -d '{"user-name":"'"$i"'",
       "password": "'"$i"'",
       "role": [ "rest-reader", "rest-writer" ]
      }' \
  http://localhost:8002/manage/v2/users
done

おすすめ記事