从bash中的变量扩展支撑



我想在bash中展开一个变量。这是我的示例:

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

预期输出:

1 2 3

实际输出:

{1,2,3}

由于BASH执行命令行扩展的顺序,扩展不起作用。如果您阅读了男人页面,您会看到订单是:

  1. BRACE扩展
  2. Tilde扩展
  3. 参数扩展
  4. 命令替代
  5. 算术扩展
  6. 流程替代
  7. 单词拆分
  8. 路径名扩展
  9. 报价删除

参数扩展发生在撑杆扩展之后,这意味着您不能像尝试一样将支架扩展放入变量内。

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

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

这是不起作用的,因为双引号抑制了支撑式扩展:

variable="{1,2,3}"

这仍然行不通,因为bash不会将列表分配给变量:

variable={1,2,3}

解决方案是将您的列表分配给 array

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

相关内容

  • 没有找到相关文章

最新更新