我想在BASH中扩展一个变量。这是我的榜样:
variable="{1,2,3}"
echo $variable
预期产出:
1 2 3
实际输出:
{1,2,3}
感谢您的帮助。
答案 0 :(得分:2)
由于bash执行命令行扩展的顺序,扩展不起作用。如果您阅读手册页,您会看到订单是:
参数扩展在大括号扩展后发生,这意味着你不能将大括号扩展放在你正在尝试的变量中。
但永远不要害怕,有答案!要在变量中存储数字列表,可以使用数组。
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