在下面的bash脚本中,我循环到1-10,我想将索引传入json字符串。但是,我认为我正在错误地逃避美元符号,因为json输出是:
测试仪\ $ I
而不是
tester1 tester2
有办法做到这一点吗?
#!/bin/bash
for i in `seq 1 10`;
do
curl -X POST http://localhost:9000/api/resources --header Content-Type:application/json --data '{"name":"tester\\$i", "text":"some text"}'
done
答案 0 :(得分:1)
for i in `seq 1 10`;
do
curl -X POST http://localhost:9000/api/resources --header Content-Type:application/json --data "{\"name\":"tester$i\", \"text\":\"some text\"}"
done
必须加双引号才能扩展变量,内部json双引号必须转义:
curl -X POST http://localhost:9000/api/resources --header Content-Type:application/json --data '{"name":"tester'$i'", "text":"some text"}'
另一种(更简单的)方法是引用变量:
system(3)