对不起,如果问题很直接,但我是 shell 脚本的新手。我正在尝试写这样的东西:
for i in {1..20}
do
curl "something $i ........ -d 'something "$i" something' "
done
Run Code Online (Sandbox Code Playgroud)
问题是$i单引号部分 ''中的第二个没有被替换。应该怎么做才能让它工作?
如上所述,参数在单引号内不展开,必须使用双引号。唯一的一点是,由于它出现在已经被双引号括起来的字符串中,您必须使用反斜杠 ( \)将它们转义,如下所示:
$ foo=bar $ eval "echo \"something \\\"$foo\\\"\"" 一些“酒吧”
请注意,\在最里面的 之前有三个",因为这将扩展两次(一次是在评估参数时eval,一次是在评估参数时echo)