Check if directory exists and count files matching a pattern in it
本问题已经有最佳答案,请猛点这里访问。
我的代码有一个从源输入的目录路径,例如
现在,我需要检查目录路径是否存在,以及路径中是否存在模式(
我不知道如何通过bash脚本使用如此复杂的表达式。
只有密码的答案。根据要求提供解释
1 2 3 4 5 6 | if [[ -d"$D_path" ]]; then files=("$D_path"/*abcd* ) num_files=${#files[@]} else num_files=0 fi |
我忘记了:默认情况下,如果没有与模式匹配的文件,那么
1 | shopt -s nullglob |
这将导致不匹配任何文件的模式展开为空。默认情况下,匹配任何文件的模式都不会作为文本字符串扩展到该模式。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $ cat no_such_file cat: no_such_file: No such file or directory $ shopt nullglob nullglob off $ files=( *no_such_file* ); echo"${#files[@]}"; declare -p files 1 declare -a files='([0]="*no_such_file*")' $ shopt -s nullglob $ files=( *no_such_file* ); echo"${#files[@]}"; declare -p files 0 declare -a files='()' |