Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在使用bash set-construct通配符时会返回大小写混合的文件名?_Bash - Fatal编程技术网

为什么在使用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 您能解释一下这种行为吗?在您的语言环境中(以及

我设置了一些文件来理解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
您能解释一下这种行为吗?

在您的语言环境中(以及在操作系统中的定义方式),
[a-z]
包括大写和小写字母。如果要可靠地匹配小写字母,请执行以下操作:

ls [[:lower:]]*