【发布时间】:2012-02-23 10:48:39
【问题描述】:
我正在尝试在我的相机文件名的 bash 中构造一个数组:
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] = ...? (编辑:我刚刚做了;不起作用。有趣)。 -
这里的所有答案都为我使用 Cygwin 分解。如果文件名中有空格,句号,它会做一些奇怪的事情。我通过在我想要使用的所有元素的文本文件列表中创建一个“数组”来解决它,并遍历文件中的行:格式化与括号中的命令周围的预期反引号混淆: IFS="";数组=(
find . -maxdepth 1 -type f -iname \*.$1 -printf '%f\n'); ${array[@]} 中的元素;做回声$元素;完成
标签: arrays bash unix scripting