На этот вопрос уже есть ответ здесь:
Мне нужна помощь в выяснении передовых методов выполнения этих команд в 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;
читает только первый объект.
Все это зависит от Ваших требований. Но запись сценария редко является плохой идеей, специально для повторяющихся задач.
Но между ;
и &&
, это - совершенно другой результат.
;
разделитель команды&&
условный оператор (так ||
)Например:
Если Вы пробуете следующую команду:
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!"