我试图在我的相机的文件名的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做一个简单的,我遇到了和你一样的问题。但是,如果我通过它的索引访问数组,像这样,如果我添加元素数字或转义:
原文链接:https://www.f2er.com/bash/392416.htmlfor ((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"