计算 Bash 通配符扩展中的元素数量?

计算 Bash 通配符扩展中的元素数量?

我的一个数据处理脚本中有一个简单的循环,看起来像这样......

for f in *.dat; do
  process ${f}
done

我想建立一个状态指示器,因此我希望能够计算出元素的数量*.dat,但我找不到任何线索,而且谷歌对这种搜索并不十分友好。

答案1

使用 Bash 数组:

arr=(*.dat)
count=${#arr[@]}

分解一下,${arr[@]}它会给出数组中的每个元素,并#给出参数扩展中的计数(实际上它会给出字符串长度,但对于数组来说它是计数)。

另请参阅 Bash Hackers Wiki:

相关内容