用 Bash 数组让 curl --noproxy 参数保持原样
把可复用的 curl 选项存进 Bash 数组,让字面量星号直接送达 --noproxy,而不会变成 shell 文本。
在 Bash 中,数组会为可复用的 curl 调用保留参数:
curl_options=(--noproxy '*' --fail --max-time 10)
curl "${curl_options[@]}" 'https://api.example/'创建数组时,单引号保护了星号。它们属于 shell 语法,因此数组只存下一个字面量 * 字符。随后,双引号中的数组展开会把每个元素作为独立参数传出去。
这里的 --noproxy '*' 让 curl 对任何目标都绕过代理。如果只想让选定目标直连,请改用预期的目标主机列表。
包含 curl --noproxy '*' 这类文本的标量无法保留同样的结构。变量展开后产生的引号在那个阶段只是普通字符;Bash 不会自动把它们重新解析成引号语法。当函数用 "$@" 转发参数时,函数也是存放固定选项的合适位置。