shell 问题记录

工作中写了个 RestAPI 接口,然后想通过 crontab 任务,去定时调用接口。发现去拼接 post 请求真的不容易。对于单引号,双引号的使用。很懵,示例代码如下:对于 '$line' 处,单引号会原封不动地输出,所以会变成"name":"a",json 里的内容为双引号,才能正常去发一个 post 请求。如果定义 name 变量时不做转义,比如:name=("a" "b" )会输出"name":a,post请求就发不出去了,就会报错。不知道还有没有别的好办法...

echo `date`
name=(\"a\"  \"b\" )
for line in ${name[@]}
do 
echo "curl -X 'POST' -H 'Content-Type: application/json' -d '{"name": "$line","age": 22}' localhost:5000"
curl -X 'POST' -H 'Content-Type: application/json' -d '{"name": '$line',"age": 22}' localhost:5000
printf "\n"
done
posted @ 2022-04-12 23:31  绣幕  阅读(21)  评论(0编辑  收藏  举报