名称中没有连接的空格的数组对象

时间:2015-01-01 18:22:59

标签: arrays bash

AVAILABLEDIR=("${AVAILABLEDIR[@]}" "$(ls $LOC -AFl | sed "1 d" |  grep "/$" | awk '{ print $9,$10 }')")

我正在尝试使用此命令创建一个数组,但是当它向数组添加对象时,它会单独添加$9$10,是否有办法告诉数组同时这些论点加入了吗?这就是我想要的:

[Directory 1/] [Directory 2/] [Directory 3/]

而不是

[Directory] [1/] [Directory] [2/] [Directory] [3/]

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

不要使用ls为首的管道;只需使用glob。

pushd "$LOC"
AVAILABLEDIR+=( */ )
popd

pushd的工作方式与cd类似,但在更改前将当前目录保存在堆栈中。 */是一种匹配当前目录中所有目录名称的模式; +=将匹配的目录附加到当前值AVAILABLEDIRpopd从堆栈顶部删除目录名称,并在那里删除cdpushd/popd组合是向数组添加Directory 1而不是$LOC/Directory 1的最简单方法。