文件夹数返回为零值

时间:2015-01-24 17:00:01

标签: linux shell

我正在尝试计算一些作为参数传递的文件夹,并以某种方式将增量返回为0。 代码看起来像: `

all=ls $1 | grep $2
echo $all

k=0
for i in $all
do
  if [ -d "$i" ];then
k=$((k+1))
  fi
  echo $i
done
echo $k

网络连接

$ 1是文件夹名称,$ 2是文件夹名称的一部分。 例如,它应该计算文件夹内的文件夹数量。 测试文件夹里面还有3个文件夹,count应该是3,但我一直得到0值

1 个答案:

答案 0 :(得分:1)

您的脚本有很多语法问题。

要计算文件夹内的文件夹,您可以使用此功能:

cntdir() { local a=( "$1"/"$2"*/ ); echo "${#a[@]}"; }

然后将其称为:

cntdir folder1 abc
  • 此函数使用glob模式a创建数组"$1"/"$2"*/,其中/最终确保我们只匹配目录。
  • ${#a[@]}获取数组元素数