我在Ubuntu上使用bash,我在文件夹中有一些文件,有些文件名称中有空格,其他非文件。
我想要一个带文件名的数组。 示例:[foo.txt,我是file.txt,bar.jpg等]
我的代码:
for x in "$(ls -1 test/)"; do
fileList+=($x)
done
我得到:[foo.txt,I,am,a,file.txt,bar.jpg等]
如果我放fileList+=("$x")
我得到一个行数组[foo.txt我是file.txt bar.jpg等]。
我该怎样做才能得到我想要的东西?
谢谢。
答案 0 :(得分:5)
为什么不使用shell globs? E.g。
for x in test/*; do
...
或
filelist=( test/* )
编辑:
shopt -s nullglob
shopt -s dotglob
可能也需要。
答案 1 :(得分:-1)
尝试使用read,如下所示:
ls | while read f ; do
echo "$f"
done