我需要帮助找出在 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!"