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/]
感谢您的帮助
答案 0 :(得分:3)
不要使用ls
为首的管道;只需使用glob。
pushd "$LOC"
AVAILABLEDIR+=( */ )
popd
pushd
的工作方式与cd
类似,但在更改前将当前目录保存在堆栈中。 */
是一种匹配当前目录中所有目录名称的模式; +=
将匹配的目录附加到当前值AVAILABLEDIR
。 popd
从堆栈顶部删除目录名称,并在那里删除cd
。 pushd/popd
组合是向数组添加Directory 1
而不是$LOC/Directory 1
的最简单方法。