我想要一个目录中所有文件的列表,因为稍后我将在代码中使用它们的名称。 我用了这个代码
path="directory"
files=($(ls "$path"))
echo "${#files[@]}"
echo "${files[@]}"
目录内只有一个文件“文件 0”。 问题在于空白空间被解释为两个文件之间的分隔。 因此它打印 2 个元素:“file”和“0”,因为它们是目录中的 2 个不同文件。
我找不到任何与我类似的问题。 重击版本: GNU bash,版本 5.1.16(1)-发布 Linux 薄荷 21.1
不要使用
ls
。使用由 shell 直接扩展的通配符:
path="directory"
files=("$path"/*)