在命令替换中使用变量

时间:2013-08-09 06:45:29

标签: bash

我需要一些关于以下简单bash脚本的帮助,其中变量i在运行curl时似乎没有被替换(导致错误)。

(这只是对实际脚本的简单抽象)

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

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:0)

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

  

用双引号(“...”)括起引用值不会   干扰变量替换。这称为部分引用,   有时被称为“弱引用”。使用单引号('...')   导致变量名称按字面使用,而不是替换   会发生。这是完全引用,有时也称为   “强烈引用。”

A