通过 bash 运行curl 命令返回“URL 被拒绝:错误的主机名”,但可以在 cmdline 上运行

问题描述 投票:0回答:2

当我尝试像这样通过 bash 运行这个命令时

Bash 脚本

mSearchCommand="curl $mSearchCommand --url '${requestURL}'"
echo "Search Command $mSearchCommand"
mSearchResponse="$(${mSearchCommand})"

输出

Search Command curl -v -X GET --header Authorization:'Bearer ---very long access token---' -s '
https://my-rest-services:443/mypath/someparameters'
* URL rejected: Bad hostname
* Closing connection
* URL rejected: Port number was not a decimal number between 0 and 65535
* Closing connection

当我在命令行上运行以下命令时,它运行完美,并返回我的 json 响应

curl -v -X GET --header Authorization:'Bearer ---very long access token---' -s '
https://my-rest-services:443/mypath/someparameters'

{myjson response}
linux bash rest curl
2个回答
0
投票

我将 bash 脚本修改为以下内容,它开始工作。 “eval”是运行它的方式。

    mSearchCommand="curl $mSearchCommand --url '${requestURL}'"
    echo "Search Command $mSearchCommand"
    eval "$mSearchCommand"

0
投票

您可以将

eval
省略并取消引用最后一行

mSearchCommand="curl $mSearchCommand --url '${requestURL}'"
echo "Search Command $mSearchCommand"
$mSearchCommand
© www.soinside.com 2019 - 2024. All rights reserved.