为什么在使用bash set-construct通配符时会返回大小写混合的文件名?
我设置了一些文件来理解bash的set-construct通配符,即[]为什么在使用bash set-construct通配符时会返回大小写混合的文件名?,bash,Bash,我设置了一些文件来理解bash的set-construct通配符,即[] ls * 1 2 A bob darlene dave ed frank fred LS_example.sh Z 我希望通过ls[a-z]*返回的文件只包括以小写字母开头的文件,但在以下情况下,也会返回以大写字母开头的文件: ls [a-z]* A bob darlene dave ed frank fred LS_example.sh 您能解释一下这种行为吗?在您的语言环境中(以及
ls *
1 2 A bob darlene dave ed frank fred LS_example.sh Z
我希望通过ls[a-z]*
返回的文件只包括以小写字母开头的文件,但在以下情况下,也会返回以大写字母开头的文件:
ls [a-z]*
A bob darlene dave ed frank fred LS_example.sh
您能解释一下这种行为吗?在您的语言环境中(以及在操作系统中的定义方式),[a-z]
包括大写和小写字母。如果要可靠地匹配小写字母,请执行以下操作:
ls [[:lower:]]*