这有点棘手。我有一个 shell 脚本来在我们的 JIRA 中创建任务。我在 Ubuntu 服务器(新手)上运行它。
我在脚本中有一个变量,如下所示:
SCRIPT="curl -D- -u $USER:$PASSWORD -X POST --data @$SAMPLE_FILE -H \"Content-Type: application/json\" $REST_URL"
我回显这个脚本并使用 $SCRIPT 我的 shell 脚本运行它。当我 bash 脚本时,它总是返回错误
"curl: (6) Couldn't resolve host 'application'"
.但是,如果我尝试单独运行打印的 SCRIPT(我回显),它会创建一个任务。我知道这是一个小问题,但我无法得到它!
有什么建议么?
最佳答案
正如 bash tag wiki 中所建议的那样,我们可以通过 shellcheck 运行您的代码自动检查常见问题:
$ shellcheck yourscript
In yourscript line 1:
SCRIPT="curl... -H \"Content-Type: application/json\" $REST_URL"
^-- SC2089: Quotes/backslashes will be treated literally. Use an array.
In yourscript line 2:
$SCRIPT
^-- SC2090: Quotes/backslashes in this variable will not be respected.
好的,那么 let's use an array :
command=(curl -D- -u "$USER:$PASSWORD" -X POST --data "@$SAMPLE_FILE" -H "Content-Type: application/json" "$REST_URL")
# Print what we'll execute:
printf "%q " "${command[@]}"
echo
# Execute it:
"${command[@]}"
关于bash - Shell 脚本 - CURL 脚本返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24084257/