Использование параметров в скрипте bash с помощью curl

Я создаю скрипт, который делает запрос curl на предопределенный сайт.
К сожалению скрипт находит 3 параметра, но curl работает некорректно.

В чем проблема? Вот моя попытка.

random="$(cat something.txt)"
echo "ID: ${random} - File:  - Var:  - Cookie: "
url="$(curl -i -L -X POST --cookie 'info=' 
  -F 'var=' 
  -F 'submit=Send' 
  -F 'file[]=@' 
   https://example.com/upload?id=${random})"

вторая строка с echo распечатать правильные значения и тот же запрос POST не дает никаких проблем, используя непосредственно параметры, но curl не удается, и дает мне следующие ошибки:

Warning: setting file /my/path/to.file  
Warning: failed!
16
задан Timmy
12.12.2022 18:54 Количество просмотров материала 3582
Распечатать страницу

1 ответ

в чем проблема?

вы должны использовать двойные кавычки.

Shellcheck проанализирует ваш скрипт и поищет ошибки:

$ shellcheck myscript

Line 1:
random="$(cat something.txt)"
^-- SC2148: Tips depend on target shell and yours is unknown. Add a shebang.

Line 3:
url="$(curl -i -L -X POST --cookie 'info=' \
^-- SC2034: url appears unused. Verify use (or export if used externally).
                                   ^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.

Line 4:
  -F 'var=' \
     ^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.

Line 6:
  -F 'file[]=@' \
     ^-- SC2016: Expressions don't expand in single quotes, use double quotes for that.

Line 7:
   https://example.com/upload?id=${random})"
                                 ^-- SC2086: Double quote to prevent globbing and word splitting.

$ 
2
отвечен DavidPostill 2022-12-14 02:42

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх