我正在尝试将ls的输出存储在数组中

时间:2019-02-18 23:56:25

标签: arrays bash

使用Linux命令“ ls”时,我在目录中列出了所有文件。我试图将命令ls的结果存储在bash中的数组中,然后我希望能够打印出数组的每个元素。

这是我尝试过的。

> file_array=( $<ls>) )

> file_array= 'ls'

我遇到第一个错误,而我的数组仅在第二个打印出“ ls”。

1 个答案:

答案 0 :(得分:2)

解析ls的输出是not a good idea。如果必须这样做,则正确的语法应为:

files=($(ls))

您可以改用glob:

files=(*)          # store file names in an array
declare -p files   # show the contents of array

for file in "${files[@]}"; do
  # do something with file
done

在第二个语句中,=之后有一个空格,not the right syntax是用于分配的内容。