이것은 비교적 간단한 질문이어야 합니다. 루프에서 실행 가능한 프로그램을 통해 여러 파일을 전달하려고 합니다. 여러 전략(배열에 저장 등)을 시도했지만 파일 이름이 변수로 인식되지 않는 것 같습니다. 내가 받는 오류는 다음과 같습니다. 해당 파일이나 디렉터리가 없습니다.
나의 최근 시도에 대한 개요:
FILES=path/*/*
for f in $FILES
do
./function -input $f
done
저는 bash 쉘에서 작업하고 있습니다.
답변1
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