bash :替换“ ”内的变量值

Rnd*_*ndm 3 variables shell

对不起,如果问题很直接,但我是 shell 脚本的新手。我正在尝试写这样的东西:

for i in {1..20}
do
   curl "something $i ........ -d  'something "$i" something' "
done
Run Code Online (Sandbox Code Playgroud)

问题是$i单引号部分 ''中的第二个没有被替换。应该怎么做才能让它工作?

Vir*_*ile 5

如上所述,参数在单引号内不展开,必须使用双引号。唯一的一点是,由于它出现在已经被双引号括起来的字符串中,您必须使用反斜杠 ( \)将它们转义,如下所示:

$ foo=bar
$ eval "echo \"something \\\"$foo\\\"\""
一些“酒吧”

请注意,\在最里面的 之前有三个",因为这将扩展两次(一次是在评估参数时eval,一次是在评估参数时echo