디렉터리의 파일 목록을 가져와 그 중 하나를 선택하여 터미널에 출력하는 bash 스크립트를 만들려고 합니다. 그런 다음 다음 실행 시 시퀀스의 다음 파일을 선택하고 해당 파일의 이름을 출력합니다. 이것이 가능합니까? bash 프로그램이 선택한 파일을 "기억"하고 다음 스크립트 호출에서 다음 파일을 선택하도록 하려면 어떻게 해야 합니까?
답변1
모바일 소프트 링크를 사용하세요.
초기화:
ln -s file001 .thisone
스크립트에서:
infile="$(stat -c "%N" .thisone)"
sequence=$( basename "$infile" | sed -e 's%file0*%%' )
next=$((sequence + 1))
printf -v nextfile "file%03d" $next
rm -f .thisone
if [[ -f "$nextfile" ]] ; then
ln -s "$nextfile" .thisone
else
ln -s "file001" .thisone
fi
#
# process $infile, .thisone next
테스트되지 않은, 그러나 shellcheck.net은 그것을 좋아합니다.