BASH从变量扩展

时间:2015-05-05 23:02:27

标签: bash variables expansion

我想在BASH中扩展一个变量。这是我的榜样:

variable="{1,2,3}"
echo $variable

预期产出:

1 2 3

实际输出:

{1,2,3}

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

由于bash执行命令行扩展的顺序,扩展不起作用。如果您阅读手册页,您会看到订单是:

  1. 支持扩展
  2. Tilde扩张
  3. 参数展开
  4. 命令替换
  5. 算术扩展
  6. 流程替换
  7. 分词
  8. 路径名扩展
  9. 引用删除
  10. 参数扩展在大括号扩展后发生,这意味着你不能将大括号扩展放在你正在尝试的变量中。

    但永远不要害怕,有答案!要在变量中存储数字列表,可以使用数组。

    variable=(1 2 3)
    echo "${variable[@]}"
    

答案 1 :(得分:0)

这首先不会起作用,因为双引号会抑制括号扩展:

variable="{1,2,3}"

这仍然无法正常工作,因为bash不会为变量分配列表:

variable={1,2,3}

解决方案是将列表分配给数组

$ variable=( {1,2,3} )
$ echo "${variable[@]}"
1 2 3