Bash добавляет дополнительные одинарные кавычки к команде curl, определенной как "... $ '...'..." - PullRequest
0 голосов
/ 27 сентября 2018

Это очень похоже на Запретить bash добавлять одинарные кавычки к выводу переменной , но ни один из этих ответов мне не помогает.

Этот скрипт:

set -ex

curl_headers=(
    --silent
    "--form release_description=$'\n new \n'"
)

curl "${curl_headers[@]}" "example.com"

Возвращает этот вывод:

+ curl_headers=(--silent "--form release_description=$'\n new \n'")
+ curl --silent '--form release_description=$'\''\n new \n'\''' example.com

Он делает две вещи, которые я не хочу.Он добавляет один тик перед --form и избегает одиночных тиков в моем release_description

Желаемый результат:

curl --silent --form release_description=$'\n new \n' example.com

Как мне получить его для удаления escape-последовательностейи добавил одиночные галочки?

1 Ответ

0 голосов
/ 27 сентября 2018

Одинарные кавычки - это то, как режим трассировки (из опции -x) отображает строку;это никак не влияет на вашу команду.Основная проблема заключается в том, что вы объединяете два отдельных аргумента (--form и его аргумент) в один.

Правильный сценарий должен выглядеть примерно так:

set -ex

curl_headers=(
    --silent
    --form
    release_description=$'\n new \n'
)

curl "${curl_headers[@]}" "example.com"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...