Bash 对脚本中与传入参数匹配的文件进行计数
当我在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
*.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
选项打印计数