我试图在我的相机的文件名的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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。