В Bash массив сохраняет аргументы повторного вызова curl:

curl_options=(--noproxy '*' --fail --max-time 10)
curl "${curl_options[@]}" 'https://api.example/'

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

Здесь --noproxy '*' просит curl обходить прокси для любого назначения. Если прямыми должны быть только выбранные назначения, используйте вместо этого нужный список хостов.

Скаляр, содержащий текст вроде curl --noproxy '*', не сохраняет ту же структуру. Кавычки, возникающие при развёртывании переменной, на этом этапе являются обычными символами; Bash не разбирает их повторно автоматически как синтаксис кавычек. Функция — ещё одно подходящее место для фиксированных параметров, когда она передаёт свои аргументы через "$@".

Похожие статьи