当我尝试像这样通过 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}
我将 bash 脚本修改为以下内容,它开始工作。 “eval”是运行它的方式。
mSearchCommand="curl $mSearchCommand --url '${requestURL}'"
echo "Search Command $mSearchCommand"
eval "$mSearchCommand"
您可以将
eval
省略并取消引用最后一行
mSearchCommand="curl $mSearchCommand --url '${requestURL}'"
echo "Search Command $mSearchCommand"
$mSearchCommand