
이것은 비교적 간단한 질문이어야 합니다. 루프에서 실행 가능한 프로그램을 통해 여러 파일을 전달하려고 합니다. 여러 전략(배열에 저장 등)을 시도했지만 파일 이름이 변수로 인식되지 않는 것 같습니다. 내가 받고 있는 오류는 다음과 같습니다. 해당 파일이나 디렉터리가 없습니다.
내 최근 시도의 개요는 다음과 같습니다.
FILES=path/*/*
for f in $FILES
do
./function -input $f
done
나는 bash 쉘에서 작업하고 있습니다.
답변1
일반 변수를 사용하여 glob 확장 시퀀스를 저장하는 대신 적절한 배열을 사용하고 쉘 글로빙 옵션을 활성화하여 globstar
모든 하위 디렉터리에 파일을 채우는 것이 좋습니다.
shopt -s globstar nullglob
file_list=(path/**/*)
배열에 대한 루프를 사용하여 각 파일을 처리합니다.
for file in "${file_list[@]}"; do
printf '%s\n' "$file"
# Your other actions on file goes here
done