在bash脚本的命令选项中使用两个问号之间的变量

在bash脚本的命令选项中使用两个问号之间的变量,bash,Bash,以下是两个示例: 这是一个会导致400错误的示例 curl -i -k -u $account:password -H "Content-Type: application/json" -X PUT -d '{"source-path": "http://${ip}/LTMBlackList_Postbody${filename_extension}","type":"ip"}' https://$ip2$api2 这是一个正常的,它可以得到200 OK的响应: curl -i -k -u $

以下是两个示例: 这是一个会导致400错误的示例

curl -i -k -u $account:password -H "Content-Type: application/json" -X PUT -d '{"source-path": "http://${ip}/LTMBlackList_Postbody${filename_extension}","type":"ip"}' https://$ip2$api2
这是一个正常的,它可以得到200 OK的响应:

curl -i -k -u $account:$password -H "Content-Type: application/json" -X PUT -d '{"source-path": "http://127.0.0.1/LTMBlackList_Postbody-test.log","type":"ip"}' https://$ip2$api2

如何在带有变量的脚本中调用curl命令?

未展开
$ip
,因为它位于单引号中。首先关闭单引号,然后执行双引号,展开变量,关闭双引号,然后使用单引号

请记住始终引用变量展开以禁用分词

curl -i -k -u "$account:$password" -H "Content-Type: application/json" -X PUT \
-d '{"source-path": "http:/'"$ip"'/LTMBlackList_Postbody'"$filename_extension"'","type":"ip"}' "https://$ip2$api"

我还尝试在选项中使用单引号和双引号,使用另一个变量指示选项,并在命令中组合它们。所有的尝试都会引起400的回应。哦,我终于明白了!!!魔鬼隐藏在细节中…谢谢你的分享!!您的标题和问题似乎没有任何关系。上下文仅列出示例,主要问题描述为标题。谢谢您的建议!但我不明白双引号和单引号的顺序规则。我在哪里可以学到这些基本技术?谢谢你的回复!