数组 – 在元素中具有空格的BASH数组

前端之家收集整理的这篇文章主要介绍了数组 – 在元素中具有空格的BASH数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在我的相机的文件名的bash-shell中构造一个数组:
FILES=(2011-09-04 21.43.02.jpg
2011-09-05 10.23.14.jpg
2011-09-09 12.31.16.jpg
2011-09-11 08.43.12.jpg)

正如你可以看到,在每个文件名的中间有一个空格。
我试过用引号包装每个名称,并用反斜杠转义空格,这两个都不起作用。

当我尝试访问数组元素时,它继续将该空间当作元素分隔符。

如何正确地捕获名称中带有空格的文件名?

我认为这个问题可能部分是由你如何访问的元素。如果我在$ FILES中为elem做一个简单的,我遇到了和你一样的问题。但是,如果我通过它的索引访问数组,像这样,如果我添加元素数字或转义:
for ((i = 0; i < ${#FILES[@]}; i++))
do
    echo "${FILES[$i]}"
done

任何这些声明的$ FILES应该工作:

FILES=(2011-09-04\ 21.43.02.jpg
2011-09-05\ 10.23.14.jpg
2011-09-09\ 12.31.16.jpg
2011-09-11\ 08.43.12.jpg)

要么

FILES=("2011-09-04 21.43.02.jpg"
"2011-09-05 10.23.14.jpg"
"2011-09-09 12.31.16.jpg"
"2011-09-11 08.43.12.jpg")

要么

FILES[0]="2011-09-04 21.43.02.jpg"
FILES[1]="2011-09-05 10.23.14.jpg"
FILES[2]="2011-09-09 12.31.16.jpg"
FILES[3]="2011-09-11 08.43.12.jpg"
原文链接:https://www.f2er.com/bash/392416.html

猜你在找的Bash相关文章