Похожие вопросы

BASH-выполнить команду с помощью sudo, но в отдельном экране
Что такое SHELL-формат в envsubst?
Как подключиться к WiFi из командной строки в Ubuntu без.конф файл?
"read" работает как ожидалось в ZSH, но ведет себя по-другому при использовании любой другой оболочки
Как скопировать несколько файлов и переместить их в несколько папок с помощью терминала для Mac
Как изменить / добавить трекер.торрент-файл с помощью командной строки?
/usr/bin / env: php: нет такого файла или каталога
Простое использование tail & grep. Несколько условий
Сценарий Bash ждать завершения работы виртуальной машины Virtualbox?
Нажатие моей подсказки PS1 по ssh
Что не так с моим сценарием bash, чтобы сохранить последние x-файлы и удалить остальные?
изменение bash сочетания клавиш, таких как Ctrl-C?
Отправка имитированных нажатий клавиш в Bash
Как использовать команду rm -r в Mac терминала?
Лучший способ извлечь подстроку в bash

Использование параметров в скрипте 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!
5
задан Timmy
источник

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 2018-11-02 20:29:23
источник

Другие вопросы bash linux shell-script