在命令替换中使用变量

9
我需要一些关于下面简单bash脚本的帮助,运行curl命令时似乎不能替换变量i(导致错误)。
(这只是实际脚本的简单抽象)
for i in {1..3}
do
  HTML=$(curl -s 'http://example.com/index.php?id=$i')
done;

1
"尝试使用双引号而不是单引号进行封装。" - amadain
2个回答

19

在单引号中不会替换变量,这种情况下您必须使用双引号:

for i in {1..3}; do
    HTML=$( curl -s "http://example.com/index.php?id=$i" )
done

1

来自 http://tldp.org/LDP/abs/html/varsubn.html

将引用的值用双引号("...")括起来不会影响变量替换。这被称为部分引用,有时也称为“弱引用”。使用单引号('...')会导致变量名被字面使用,不会进行替换。这是完全引用,有时也称为“强引用”。

A


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接