最佳实践是多次执行几乎相同的命令

最佳实践是多次执行几乎相同的命令

我需要帮助找出在 bash 中执行这些命令的最佳做法。这是一个发送文本的命令,我需要对几个电话号码和几个日期重复此命令……总共大约 250 次。{"creditsUsed":1.00,"snapshotId":107416458}如果运行顺利,该命令将返回类似以下内容。否则,返回错误代码。

curl -X POST \
-H "X-Primotexto-ApiKey: 784155c6a3c9ceed9d0a4d1ffdb67466" \
-H "Content-Type: application/json" \
-d '{"number":"+317877592979" , "message":"test\nother line" , "sender":"myCompany" , "date": 1539272220000}' \
https://api.primotexto.com/v2/notification/messages/send;

curl -X POST \
-H "X-Primotexto-ApiKey: 784155c6a3c9ceed9d0a4d1ffdb67466" \
-H "Content-Type: application/json" \
-d '{"number":"+317877574678" , "message":"test2\nother line" , "sender":"myCompany" , "date": 1539272220001}' \
https://api.primotexto.com/v2/notification/messages/send;

curl -X POST \
-H "X-Primotexto-ApiKey: 784155c6a3c9ceed9d0a4d1ffdb67466" \
-H "Content-Type: application/json" \
-d '{"number":"+317877574676" , "message":"test3\nother line" , "sender":"myCompany" , "date": 1539272220002}' \
https://api.primotexto.com/v2/notification/messages/send;

...

我应该用;或 来结束它吗&&?我应该写一个脚本吗?我可以用 json 做得更好吗?

编辑也许我可以构建这样的 json 文件:

{
    "number":"+336770002979",
    "message":"La plupart\ntest",
    "sender":"BEinstitute",
    "date": 1539286620000
},
{
    "number":"+336600000780",
    "message":"La plupart\ntest",
    "sender":"BEinstitute",
    "date": 1539286620000
}

然后用 curl 遍历每个对象。你知道该怎么做吗?

$ curl -X POST -H "X-Primotexto-H "Content-Type: application/json" -d @json.json https://api.primotexto.com/v2/notification/messages/send;

仅读取第一个对象。

答案1

这一切都取决于您的要求。但编写脚本通常不是一个坏主意,尤其是对于重复性任务而言。

但在;和之间&&,则是完全不同的结果。

  • ;是命令分隔符
  • &&是条件运算符(所以也是||

例如:

如果您尝试以下命令:

touch /var/no-permission; echo "It works!"

该行的第一部分(分号之前)将失败,因为您无权创建文件/var(当然,只要您未登录root)。但您将看到t works!控制台中打印出行“,因为分号只是一个分隔符,并不关心前一个命令是否有效。

但是,如果您尝试以下命令:

touch /var/no-permission && echo "It works!"

这不会执行任何操作,因此您不会It works!在控制台中看到。由于第一个命令将失败,&&操作员将不会尝试运行下一个命令。(您也可以使用||代替来&&执行相反的操作。因此第二个命令仅在第一个命令失败时运行)

因此,如果其中一个命令失败,则所有其他命令都应停止,然后使用&&。如果它们应该继续,则使用;

缺点:如果你可以将每个命令写在新行上,那么就像你用分号分隔它们一样。例如,

touch /var/no-permission; echo "It works!"

是相同的

touch /var/no-permission
echo "It works!"

相关内容