问题:
要将curl中的data如下:
-d $'{"time_from":1637683200,"time_to":1637769599,"sql":"umid = \'78fd32b3-981-4653-bb26f32f37447de\'"}'
设置为变量如下:[以下的语法是不对的,表达一下目标]
-d $'{{"time_from":${st},"time_to":${ed},"sql":"umid = \'${umid}\'"}'
解决方式:
-d $'{"sql":"umid = \''"${umid}"$'\'","time_from":'"${st}"' ,"time_to":'"${ed}"'}'
解释:
' "${st}" '
(参考:https://cloud.tencent.com/developer/ask/209654)
被解析为单引号部分'{"summary": "'
(其中双引号是文字的),紧接着是双引号部分"$summary"
(变量在其中扩展),紧接着是另一个单引号-quoted节'", "description"...'
等。由于有这些部分之间没有空格,就会被视为一个长的参数curl
。
$'...‘
猜测应该是包含\'的变量,但没有找到说明位置,但测试 echo $'\'ass ' 和 echo '\' ass'可以正常执行如下:
[root@lijie-120 ld_es]# echo $'\'ass '
'ass
[root@lijie-120 ld_es]# echo '\'ass '
>
没有评论:
发表评论