在bash中,array =(`echo“$ @”`)与array = $ @有什么不同?

时间:2018-03-12 15:58:16

标签: bash

我是bash的新手。请你解释一下导师的这段代码之间的区别:

newarray=(`echo "$@"`)

和我的行

newarray=$@

我非常感谢

1 个答案:

答案 0 :(得分:2)

你不应该使用任何一个。如果你想要另一个由位置参数组成的数组,你应该使用

newarray=( "$@" )

要了解原因,您需要了解

  1. $@做什么,以及引用时的行为方式。
  2. 分词是什么,以及什么时候应用。
  3. 什么路径名扩展,以及它如何促成第一个是一个坏主意。
  4. 引用如何工作,因此您知道(或很少,不需要)引用的内容。
  5. 以上所有内容都是一个过于宽泛的主题;我建议阅读(不只是略读)bash手册页。它作为一个教程并不是很好,但你需要的所有信息都在那里。