【发布时间】:2015-10-06 21:23:20
【问题描述】:
我有一个要传递路径的函数。
发生的情况是 function setSub 调用 function testSub 并且在某些情况下 testSub 使用不同的路径调用 setSub。
这是我目前所拥有的
shopt -s nullglob
function setSub() {
local assets=("$1"/*)
echo ${#assets[@]} ######### Here
for asset in "${assets[@]}";
do
if [ -d "$asset" ]; then
setSub "$asset"
fi;
done
}
我标记“这里”的地方输出数组长度。问题是每当它调用自己时,assets 数组就是 0。上面的示例应该向下钻取并列出目录中的项目数。 (示例的作用,而不是我的整个脚本的作用)
【问题讨论】:
-
你想做什么?看起来您可以使用简单的
find "$1"或类似的方法获得所需的输出。此外,assets数组在遍历文件而不是目录时将为空。 -
在我的测试中没问题(显然,在脚本中添加了最终的“setSub $1”)并将其作为“myscript”执行。