小编Sil*_*ilv的帖子

什么是bash中的列表?

我在这里搜索过类似的问题,但令人惊讶的是找不到任何问题.

在GNU bash中,有一个名为" arrays "的(一个构造?一个结构?一个数据类型?).数组在bash文档中有详细记录,所以我认为我理解了基础知识.

但突然间,在文档中也出现了"列表"一词.例如,在讨论文件名扩展时使用它(强调是我的):

如果出现其中一个字符,则该单词被视为模式,并替换为与该模式匹配的按字母顺序排列的文件名列表(请参阅模式匹配).

因此,我有三个问题:

  1. "列表"在这里意味着什么?
  2. 它是否与for循环描述中的含义相同?
  3. 我在某种程度上迷失在bash的空白世界中.如果这个"列表"是一个单独的数组概念(正如我所想的那样),它是否在涉及空格时特别对待IFS,或者与数组相同?

还有另一种使用"名单"一词在谈论一个或多个管道的序列时,但我知道,很可能意味着不同类型的列表.


UPDATE

  1. 因为我看到这个"列表结构"的工作方式与数组的工作方式非常相似 - 它们之间有什么区别?

更新2

  1. 当"列表"优于数组时,有哪些用例?例如,让我们进行比较.让我们创建两个文件:

    $ touch file1.txt file2.txt

说到列表,我可以执行以下操作:

$ A=*.txt ; echo $A
file1.txt file2.txt
$ 
Run Code Online (Sandbox Code Playgroud)

当涉及到数组时,我可以执行以下操作:

$ B=(*.txt) ; echo ${B[@]}
file1.txt file2.txt
$ 
Run Code Online (Sandbox Code Playgroud)

虽然这两个结果完全相同,但是当数组和列表返回不同的结果时是否存在任何情况?


更新3

我可能会混淆一些东西,因为在上面的例子中,它似乎是一个"包裹"在数组中的列表.我不知道它是否有所作为.

arrays bash shell list

6
推荐指数
2
解决办法
3532
查看次数

标签 统计

arrays ×1

bash ×1

list ×1

shell ×1