假设有一个目录 ' foo ' 包含几个文件:
ls foo:
1.aa 2.bb 3.aa 4.cc
现在在 bash 脚本中,我想计算 ' foo ' 中具有特定后缀的文件的数量,并显示它们,例如:
SUFF='aa'
FILES=`ls -1 *."$SUFF" foo`
COUNT=`echo $FILES | wc -l`
echo "$COUNT files have suffix $SUFF, they are: $FILES"
问题是:如果SUFF='dd'
,$COUNT
也等于1
。google之后发现原因是when SUFF='dd'
,$FILES
是一个空字符串,并不是程序真正的null输出,会被认为有一行by wc
。NUL 输出只能通过管道传递。所以一种解决方案是:
COUNT=`ls -1 *."$SUFF" foo | wc -l`
但这会导致ls
命令被执行两次。所以我的问题是:有没有更优雅的方法来实现这一点?