Как запустить команду Curl из сценария bash [дубликат] ⇐ Linux
Как запустить команду Curl из сценария bash [дубликат]
У меня есть сценарий ниже для запуска команды curl с хоста Linux, которая принимает вводимые пользователем данные и запускается, но не удается, хотя та же команда выполняется вручную.
#!/bin/bash # Константы api_key="Thdshd760Jd" api_url="https://execute-api.amazonaws.com/prod/v1/archive;done" # Пользовательский ввод прочитайте -p "Введите имя проекта: "Имя проекта прочитайте -p "Введите имя_сайта: " Имя_сайта прочитайте -p "Введите адрес электронной почты: " адрес электронной почты read -p "Введите путь к файлу, содержащему имена дисков: " disk_file # Считайте имена дисков из файла и создайте строку, разделенную запятыми disks=$(awk '{printf "\"%s\", ", $1}' "$disk_file" | sed 's/, $//') # Создайте полезную нагрузку JSON в Bash json_payload="'{\"projectName\": \"$projectName\", \"siteName\": \"$siteName\", \"disks\": [$disks], \"emailAddress\": \" $emailAddress\"}'" # Сделайте запрос API, используя Curl Curl -vv -X POST -H "x-api-key: $api_key" -H "Тип контента: application/json" -d "$json_payload" $api_url echo 'curl -vv -X POST -H "x-api-key: '$api_key'" -H "Тип контента: application/json" -d '$json_payload' '$api_url'' Ниже как я это выполняю..
$ ./curl_api_call.sh Введите имя проекта: my_disk001. Введите имя сайта: JLDC Введите адрес электронной почты: labtest@example.com Введите путь к файлу, содержащему имена дисков: demo_file Примечание. Ненужное использование -X или --request, POST уже подразумевается. {"message": "Неверное тело запроса"} curl -vvvvvv -X POST -H "x-api-key: Thdshd760Jd" -H "Тип контента: application/json" -d '{"projectName": "my_disk001", "siteName": "JLDC", "disks" ": ["my_disk001"], "emailAddress": "labtest@example.com"}' https://execute-api.amazonaws.com/prod/v1/archive даже делая то же самое, выдавая ту же ошибку:
for i в `cat` ; do Curl -vvvvvv -X POST -H "x-api-key: Thdshd760Jd" -H "Тип контента: application/json" -d '{"projectName": "$i", "siteName": "JLDC", "диски": ["$i"], "emailAddress": "labtest@example.com"}' https://execute-api.amazonaws.com/prod/v1/archive;done Пожалуйста, подскажите, как это можно исправить.
У меня есть сценарий ниже для запуска команды curl с хоста Linux, которая принимает вводимые пользователем данные и запускается, но не удается, хотя та же команда выполняется вручную.
#!/bin/bash # Константы api_key="Thdshd760Jd" api_url="https://execute-api.amazonaws.com/prod/v1/archive;done" # Пользовательский ввод прочитайте -p "Введите имя проекта: "Имя проекта прочитайте -p "Введите имя_сайта: " Имя_сайта прочитайте -p "Введите адрес электронной почты: " адрес электронной почты read -p "Введите путь к файлу, содержащему имена дисков: " disk_file # Считайте имена дисков из файла и создайте строку, разделенную запятыми disks=$(awk '{printf "\"%s\", ", $1}' "$disk_file" | sed 's/, $//') # Создайте полезную нагрузку JSON в Bash json_payload="'{\"projectName\": \"$projectName\", \"siteName\": \"$siteName\", \"disks\": [$disks], \"emailAddress\": \" $emailAddress\"}'" # Сделайте запрос API, используя Curl Curl -vv -X POST -H "x-api-key: $api_key" -H "Тип контента: application/json" -d "$json_payload" $api_url echo 'curl -vv -X POST -H "x-api-key: '$api_key'" -H "Тип контента: application/json" -d '$json_payload' '$api_url'' Ниже как я это выполняю..
$ ./curl_api_call.sh Введите имя проекта: my_disk001. Введите имя сайта: JLDC Введите адрес электронной почты: labtest@example.com Введите путь к файлу, содержащему имена дисков: demo_file Примечание. Ненужное использование -X или --request, POST уже подразумевается. {"message": "Неверное тело запроса"} curl -vvvvvv -X POST -H "x-api-key: Thdshd760Jd" -H "Тип контента: application/json" -d '{"projectName": "my_disk001", "siteName": "JLDC", "disks" ": ["my_disk001"], "emailAddress": "labtest@example.com"}' https://execute-api.amazonaws.com/prod/v1/archive даже делая то же самое, выдавая ту же ошибку:
for i в `cat` ; do Curl -vvvvvv -X POST -H "x-api-key: Thdshd760Jd" -H "Тип контента: application/json" -d '{"projectName": "$i", "siteName": "JLDC", "диски": ["$i"], "emailAddress": "labtest@example.com"}' https://execute-api.amazonaws.com/prod/v1/archive;done Пожалуйста, подскажите, как это можно исправить.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Не удалось запустить команду «/bin/bash» во время восстановления системы
Anonymous » » в форуме Linux - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-