卷曲多个for循环

Curl multiple for loops

我尝试 运行 几个 "for loops" 与 curl POST 调用失败。

有多个实体 ID,每个都有不同的版本。 为了成功更改每个实体的状态,我必须将它们与它们的版本相匹配。鉴于我知道实体 ID 并且我能够获得版本 ID 列表,所以对我的 "skill" 集来说,做两个 "for loops" 似乎是最平易近人的想法。

for i in {12345,12346}; do for j in $(seq 0 3); do curl -b cookies.txt https://mydomain(dot)com/${i} -d 'status=0&version=${j}';done done;

我收到 "version conflict" 错误 - 这意味着 J 值未被替换

如果我尝试

for i in {12345,12346}; do for j in $(seq 0 3); do echo curl -b cookies.txt "https://mydomain(dot)com/${i} -d 'status=0&version=${j}'";done done;

我收到以下响应,这意味着尚未对实体的状态进行任何实际更改

curl -b cookies.txt https://mydomain(dot)com/12345 -d 'status=0&version=0'
curl -b cookies.txt https://mydomain(dot)com/12345 -d 'status=0&version=1'
curl -b cookies.txt https://mydomain(dot)com/12345 -d 'status=0&version=2'
curl -b cookies.txt https://mydomain(dot)com/12345 -d 'status=0&version=3'
curl -b cookies.txt https://mydomain(dot)com/12346 -d 'status=0&version=0'
curl -b cookies.txt https://mydomain(dot)com/12346 -d 'status=0&version=1'
curl -b cookies.txt https://mydomain(dot)com/12346 -d 'status=0&version=2'
curl -b cookies.txt https://mydomain(dot)com/12346 -d 'status=0&version=3'

理想情况下,调用只会进行两次 POST,一次对应每个实体 ID 及其对应的版本。 但是,根据我创建的结构,我预计在 8 个 POST 中,有六个会因为 "version conflict" 而失败,两个会成功,因为这两个实体的版本将在j 列表。

任何 help/pointers 将不胜感激

在您的第一个版本中,您使用的是单引号,因此字符串插值不起作用。在您的第二个示例中,您使用的是双引号。在第一个示例中也尝试将它们更改为双引号。