쉘스크립트안에 파일리스트를 가지고있고 rm 명령어로 지우고 싶습니다.

xoduddk123의 이미지

안녕하세요.

제가 만약에 1 2 3 4 5 라는 파일을 지우고 싶습니다.
이것을 만약에 쉘스크립트로 구현한다면

rm -rf 1
rm -rf 2
rm -rf 3
rm -rf 4
rm -rf 5

이렇게 5줄로 해야합니다.

이런식으로하면 만약에 파일을 100개를 지워야다고 하면 쉘스크립트가 100줄이되게 되는데요.

이렇게 하면 관리하기 힘든 스크립트가 될 것 같습니다.

이러한 경우처럼 쉘스크립트안에 삭제할 파일리스트 목록을 가지고 있다면 rm -rf는 한줄만 쓰고 파일리스트를 읽어와서 지우는것이 쉘스크립트에서 가능할까요 ??

파일리스트는 꼭 쉘스크립트안에 있었으면 합니다...

Prentice의 이미지

#!/bin/bash
for X in 1 2 3 4 5 ; do rm -rf $X ; done
esrevinu의 이미지

Bash에는 배열이 있는데요, 파일 리스트를 이 배열 변수에 넣고
루프로 지울 수 있겠죠.

#!/bin/bash
 
filelist=( a.txt b.txt
           c.txt d.txt
           e.txt f.txt )
 
for ((i = 0; i < ${#filelist[@]}; i++)); do
    rm -f "${filelist[i]}"
done
 
# 또는
# for file in "${filelist[@]}"; do
#     rm -f "$file"
# done

xoduddk123의 이미지

감사합니다. 해당방법으로 하니 파일이 여러개여도 filelist에만 파일을 추가해주면 손쉽게 처리게 처리가가능하네요.
많은 도움이 되었습니다.