这有点棘手。我有一个shell脚本来在我们的JIRA中创建任务。我在Ubuntu Server上运行它(一个新手)。
我在脚本中有一个变量如下:
SCRIPT="curl -D- -u $USER:$PASSWORD -X POST --data @$SAMPLE_FILE -H \"Content-Type: application/json\" $REST_URL"
我回复此脚本并使用$ SCRIPT我的shell脚本运行它。当我打击我的脚本时,它总是返回错误"curl: (6) Couldn't resolve host 'application'"
。
但是,如果我尝试单独运行打印的SCRIPT(我回应),它会创建一个任务。我知道这是一个小问题,但我无法得到它!
有什么建议吗?
答案 0 :(得分:2)
根据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[@]}"