【发布时间】:2020-04-30 16:50:57
【问题描述】:
我有几百条记录需要通过 API 更新。更新是针对同一个字段的,但每条记录不一定会收到相同的值。这意味着我需要两组变量,一组用于记录 ID,另一组用于输入的唯一值。我在想我可以用 cURL 或 bash 来完成这项工作,但还没有想出一个工作脚本。我得到的最接近的是以下变量 $i 用于四个记录 ID,变量 $j 用于每个相应记录将更新的值(新日期)...
for i in "50446" "50513" "50526" "50546" ; do
for j in "2019-08-15 07:00:00" "2019-08-26 07:00:00" "2019-08-20 07:00:00" "2019-08-22 07:00:00" ; do
( curl -H "Accept: application/xml" -H "X-API-KEY:***************" -d "<invoice-header><payment-date>$j.000</payment-date></invoice-header>" -X PUT "https://dummy-environment.com/api/invoices/$i" ) &&continue
done
done
但是,使用上面的脚本,API 循环遍历每个记录 ID,并使用变量 $j 中指定的第四个(最后一个)日期值更新所有记录 ID。它没有从 $j 中提取每个相应的值。有没有人做过这样的事情?有什么建议吗?
【问题讨论】:
-
在内部循环中使用
echo "$i --- $j"测试了您的代码,但我无法重现您的问题。 -
你正在做
$i和$j的所有组合,这是你真正想要的吗?还是您希望第一个$i与第一个$j一起使用,第二个$i与第二个$j一起使用,依此类推? -
@Barmar 我的意图是让第一个 $i 与第一个 $j 一起使用,第二个 $i 与第二个 $j 一起使用,等等。但我找到了一种通过 Rails 控制台执行此更新的方法(应用程序是用 Ruby 编写的)所以我的问题得到了解决。谢谢。
-
我清楚地知道了这一点,因为我发布了一个答案,说明了如何做到这一点。
标签: arrays bash api variables curl