Shell脚本 - CURL脚本返回错误

时间:2014-06-06 14:28:56

标签: bash shell ubuntu curl

这有点棘手。我有一个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(我回应),它会创建一个任务。我知道这是一个小问题,但我无法得到它!

有什么建议吗?

1 个答案:

答案 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[@]}"