我有一个具有多个路径(文件夹名称)的脚本。
每个文件夹路径都会有一个 Dockerfile,但不确定该文件存在于哪个级别。
假设我的路径是“v1/airflow/1.86/src/代码/”
例如,该文件可以位于“v1/airflow/1.86/src/Dockerfile”或者可以“v1/airflow/1.86/Dockerfile”
所以我想找到一种方法,让我可以退一步,或者光盘 ../ 递归检查文件是否存在,如果不存在则返回一个目录,然后再次查看,如果存在,则停止进一步查看
任何帮助表示感谢
答案1
一个快速而肮脏的解决方案:
dirs=$(echo v1/airflow/1.86/src/code/ | tr '/' ' ')
path=""
for element in ${dirs[@]}
do
if [[ -z "$path" ]]; then path=$element; else path="$path/$element"; fi
printf "%s\n" "$path"
[[ -e "${path}/Dockerfile" ]] && printf "Found it!\n"
done
从上往下检查。反转数组的顺序应该不太难。