这是我的问题:我必须解决用户可配置的各种文件名/位置(数据目录可能有子目录)。如果我可以在循环之前完全解析文件名,则以下脚本有效:
[提示] 更多 test.sh #!/usr/bin/env bash 新文件=实际文件名 对于`find -L ${FILE_PATH}/data -type d`中的目录;做 `ls -1 ${directory}/${newfile} 2>/dev/null` 中的文件名;做 如果 [[ -r ${文件名} ]]; 然后 echo "找到 ${filename}" 菲 完毕 完毕 [提示] ./test.sh [提示] 找到 ${SOME_PATH}/actual-filename
但是,如果 newfile 中有任何通配符,则内部循环将不会运行。即使它只返回一个文件。
我会将 find 与一些正则表达式一起使用,但是要自动生成正确的表达式并替换某些东西会很棘手(例如 pgb.f0010{0930,1001}{00,06,12,18} 会与某些文件关联对于 2010 年 9 月 30 日和 10 月 1 日,第一个分组是由我的脚本为提供的日期计算的)。
pgb.f0010093000 pgb.f0010093006 pgb.f0010093012 pgb.f0010093018 pgb.f0010100100
pgb.f0010100106 pgb.f0010100112 pgb.f0010100118
我正在运行 Fedora 15 64 位。