首页 新闻 搜索 专区 学院

shell中反引号 `` 赋值变量问题

0
悬赏园豆:10 [已解决问题] 解决于 2020-08-26 15:47

!/bin/sh

startTime=$1
endTime=$2
echo ${startTime} ${endTime}
aaa='{"startTime":"${startTime}","endTime":"${endTime}","buildType":"BUILD"}'
echo ${aaa}

想用反引号把两个变量赋值
道友,何解?

道法自然﹑的主页 道法自然﹑ | 初学一级 | 园豆:46
提问于:2020-05-29 11:42
< >
分享
最佳答案
1

一种解决方法是将单引号与双引号调换一下位置

aaa="{'startTime':'${startTime}','endTime':'${endTime}','buildType':'BUILD'}"
收获园豆:10
dudu | 高人七级 |园豆:37567 | 2020-05-29 12:07

这样的输出结果:
{'startTime':'1668929219000','endTime':'1669039219000','buildType':'BUILD'}
不是想要的结果,想要的结果是:
'{"startTime":"1668929219000","endTime":"1669039219000","buildType":"BUILD"}'
还有什么方法吗

道法自然﹑ | 园豆:46 (初学一级) | 2020-05-29 13:53

@道法自然﹑: 还有一种方法是对双引号进行转义

aaa="{\"startTime\":\"${startTime}\",\"endTime\":\"${endTime}\",\"buildType\":\"BUILD\"}"
dudu | 园豆:37567 (高人七级) | 2020-05-29 14:25

@dudu: 您好:
这个是可以的,但是我想用反引号`` 来直接运行的,这一部分是我curl 调接口的一部分
aaa="{\"startTime\":\"${startTime}\",\"endTime\":\"${endTime}\",\"buildType\":\"BUILD\"}"
用反引号赋值,改怎么做?

道法自然﹑ | 园豆:46 (初学一级) | 2020-05-29 16:12

!/bin/sh

startTime=$1
endTime=$2
echo ${startTime} ${endTime}

发送请求

echo "请求命令:" "curl -u ADMIN:KYLIN -g -H "Content-type: application/json" -X PUT "http://10.94.152.31:7070/kylin/api/cubes/TEST01/rebuild" -d '{"startTime":"${startTime}","endTime":"${endTime}","buildType":"BUILD"}'"

task_start=curl -u ADMIN:KYLIN -g -H "Content-type: application/json" \-X PUT "http://10.94.xxx.xxx:7070/kylin/api/cubes/TEST01/rebuild" \-d '{"startTime":"${startTime}","endTime":"${endTime}","buildType":"BUILD"}'

这个一直获取不到值,填上具体的值是可以运行的

道法自然﹑ | 园豆:46 (初学一级) | 2020-05-29 16:18

@道法自然﹑: 解决方法三:将"改为"'"

aaa='{"startTime":"'"${startTime}"'","endTime":"'"${endTime}"'","buildType":"BUILD"}'
dudu | 园豆:37567 (高人七级) | 2020-05-29 16:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册