假设有一个目录“富”它包含几个文件:如何在bash脚本中存储程序的NUL输出?
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
。谷歌后,我发现的原因是当SUFF='dd'
,$FILES
是一个空字符串,不是一个程序的空输出,它将被认为有一行wc
。 NUL输出只能通过管道传递。所以一个解决方案是:
COUNT=`ls -1 *."$SUFF" foo | wc -l`
但这会导致ls
命令被执行两次。所以我的问题是:有没有更好的方法来实现这一目标?
的文件名以'foo'结束?你可以给一个这样的样本名称吗?你想递归搜索子目录吗? – Inian
foo是目录。文件名以aa,bb,cc结尾。不需要搜索子目录。 – xlwang