array=('echo "$@" ') 与 bash 中的 array=$@ 有何不同?



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

newarray=(`echo "$@"`)

和我的线

newarray=$@

我将不胜感激

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

newarray=( "$@" )

要了解原因,您需要了解

  1. $@做什么,以及引用时的行为。
  2. 什么是单词拆分,以及何时应用。
  3. 什么是路径名扩展,以及它如何导致第一个是一个坏主意。
  4. 引用的工作原理,因此您知道什么(或很少(不需要引用。

以上所有内容都太宽泛了,无法进入;我建议阅读(而不仅仅是略读(bash手册页。作为教程,它不是很好,但您需要的所有信息都在那里。

最新更新