在 for 循环内卷曲 POST

CJ *_*ang 3 shell-script curl

以下适用于创建单个用户:

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
Run Code Online (Sandbox Code Playgroud)

但是在 for 循环中创建多个用户时失败了(一次一个)

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
Run Code Online (Sandbox Code Playgroud)

我哪里做错了?

Fre*_*ddy 6

您的数据字符串用单引号括起来,但变量不会在单引号内展开。
您可以用 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
Run Code Online (Sandbox Code Playgroud)