这与Prevent bash from adding single quotes to variable output非常相似,但是这些答案都没有帮助我。
此脚本:
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
我如何删除转义序列并添加单个刻度?
答案 0 :(得分:3)
单引号只是跟踪模式(来自-x
选项)如何显示字符串;它根本不影响您的命令。主要问题是您要将两个单独的参数(--form
及其参数)组合为一个。
正确的脚本应该类似于
set -ex
curl_headers=(
--silent
--form
release_description=$'\n new \n'
)
curl "${curl_headers[@]}" "example.com"