所以我以字典/ json的形式卷曲一些数据并想要使用bash变量。如果我创建一个for循环并将字典括起来:
for i in {1..5}; do curl blah blah -d '{"key": "value $i"}'; done
然后它将打印出“value $ i”而不是“value 1”。我假设这是因为包含单个括号(阻止bash扩展变量)存在(即使实际值行是双引号)。
另外,如果我反转所有引号(用double括起来,在其间使用single),bash然后将我放在下一行“>”好像它期待更多的输入。试图逃避角色也没有给我任何运气。
答案 0 :(得分:2)
将{1..5}
后的冒号更改为分号。并将$i
放在双引号内。
for i in {1..5}; do curl blah blah -d '{"key": "value '$i'"}'; done
OR
for i in {1..5}; do curl blah blah -d '{"key": "value '"$i"'"}'; done
答案 1 :(得分:2)
shell不会在单引号内扩展变量,请使用:
for i in {1..5}
do
curl blah blah -d "{\"key\": \"value $i\"}"
done