Diğer cevaplar evalve komutlarını kullanarak tartışırken seq, aritmetik bağlamda bashgeleneksel bir C stili fordöngü kullanabilirsiniz . Değişkenler ext0ve döngünün tanımlanan aralık için çalışmasına neden olacak extNşekilde genişletilir ((..)).
for (( idx = ext0; idx <= extN; idx++ )); do
[[ -f "$foo.$idx" ]] || { printf "file %s does not exist" "$foo.$idx" >&2 ; continue }
rm "$foo.$idx"
done
En uygun yolu arıyorsanız ve birden çok rmkomuttan kaçınırsanız , dosya adı sonuçlarını saklamak ve rmtek seferde çağrı yapmak için geçici bir yer tutucu kullanabilirsiniz .
results=()
for (( idx = ext0; idx <= extN; idx++ )); do
[[ -f "$foo.$idx" ]] || { printf "file %s does not exist" "$foo.$idx" >&2 ; continue }
results+=( "$foo.$idx" )
done
ve şimdi rmgenişletilmiş dizideki komutu çağırın
rm -- "${results[@]}"