Diğer cevaplar eval
ve komutlarını kullanarak tartışırken seq
, aritmetik bağlamda bash
geleneksel bir C stili for
döngü kullanabilirsiniz . Değişkenler ext0
ve 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 rm
komuttan kaçınırsanız , dosya adı sonuçlarını saklamak ve rm
tek 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 rm
genişletilmiş dizideki komutu çağırın
rm -- "${results[@]}"