4
bash迭代文件列表,除非为空
我以为这很简单-但事实证明它比我预期的要复杂。 我想遍历目录中特定类型的所有文件,所以我这样写: #!/bin/bash for fname in *.zip ; do echo current file is ${fname} done 只要目录中至少有一个匹配文件,此方法就起作用。但是,如果没有匹配的文件,我会得到: current file is *.zip 然后,我尝试: #!/bin/bash FILES=`ls *.zip` for fname in "${FILES}" ; do echo current file is ${fname} done 虽然没有文件时循环主体不执行,但是我从ls收到错误: ls: *.zip: No such file or directory 如何编写一个干净地处理没有匹配文件的循环?