加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 16:48:55 所属栏目:安全 来源:网络整理
导读:我试图在我的相机的文件名的bash-shell中构造一个数组: FILES=(2011-09-04 21.43.02.jpg2011-09-05 10.23.14.jpg2011-09-09 12.31.16.jpg2011-09-11 08.43.12.jpg) 正如你可以看到,在每个文件名的中间有一个空格。 我试过用引号包装每个名称,并用反斜杠转
我试图在我的相机的文件名的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"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读