很抱歉,如果问题非常简单,但我是 shell 脚本的新手。 我想写这样的东西:
for i in {1..20}
do
curl "something $i ........ -d 'something "$i" something' "
done
问题是单引号部分 '' 中的第二个 $i
没有被替换。应该怎么做才能使其正常工作?
最佳答案
如前所述,单引号内不展开参数,必须用双引号。唯一的一点是,由于它出现在已经用双引号引起来的字符串中,您必须使用反斜杠 (\
) 将它们转义,如下所示:
$ foo=bar $ eval "echo \"something \\\"$foo\\\"\"" something "bar"
注意在最里面的"
之前有三个\
,因为这会被展开两次(一次是在评估eval
的参数时,一次是在评估 echo
)
关于shell - 庆典 : replace variable value inside ' ' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13044709/