shell - 庆典 : replace variable value inside ' '

标签 shell variables

很抱歉,如果问题非常简单,但我是 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/

相关文章:

linux - "Argument list too long error"当我在 Linux shell 中运行任何命令时

linux - Bash脚本复制无名文件夹

javascript - 加载新的 html 页面时无法使用 javascript 变量

jquery - 使点击事件之外的 jQuery 变量可供其他函数使用

bash - 通过 Plink 在 Windows 命令行上运行 shell 脚本(带参数)

objective-c - 如何从 Cocoa 调用的管理员权限 bash 脚本获取输出?

python - 在 python 中将文本添加到循环

php - JavaScript 在函数之间传递变量并处理它们

javascript - 如何将命名空间变量传递给单击函数参数变量? jQuery

linux - 有没有一种有效的方法来读取 bash 中的行输入?