Bash 对脚本中与传入参数匹配的文件进行计数

Bash 对脚本中与传入参数匹配的文件进行计数,bash,parameters,scripting,expansion,Bash,Parameters,Scripting,Expansion,当我在bash中不带任何参数地运行以下脚本时,它将返回此目录中正确数量的文件。但是当我用*.txt调用它时,它只返回1(不知道有多少*.txt文件)。如何使其正确展开脚本中的*。某些内容 function files { ls -1 --file-type $1 | grep -v '/$' | wc -l } 通配符在调用函数之前展开(除非引用参数)。您应该使用“$@”获取所有参数 function files { ls --file-type "$@" | grep -c

当我在bash中不带任何参数地运行以下脚本时,它将返回此目录中正确数量的文件。但是当我用
*.txt
调用它时,它只返回
1
(不知道有多少
*.txt
文件)。如何使其正确展开脚本中的
*。某些内容

function files {
    ls -1 --file-type $1 | grep -v '/$' | wc -l
}

通配符在调用函数之前展开(除非引用参数)。您应该使用
“$@”
获取所有参数

function files {
    ls --file-type "$@" | grep -c -v '/$'
}
其他变化:

  • 当管道传输
    ls
    的输出时,不需要
    -1
    。当输出不是到终端时,它默认为此选项
  • 您不需要将
    grep
    的输出通过管道传输到
    wc-l
    ,您可以使用
    -c
    选项打印计数