Odpowiedzi:
Spróbuj tego
for f in {1..5}; do cp my.jpg my$f.jpg; done
(nie bash tutaj, aby spróbować sam)
for loop
?
seq
nie jest konieczne w Bash. Możesz użyć for f in {1..5}
lubfor ((f=1; f<=5; f++))
Oto sposób na zrobienie tego bez for
pętli i bez ryzyka użycia eval
:
printf '%s\n' {1..5} | xargs -I {} cp my.jpg my-{}.jpg
To wciąż skutecznie pętla.
Możesz to zrobić bez pętli .. używając tee
i {}
nawiasów klamrowych.
EDYCJA: (poprawiona zgodnie z komentarzem Dennisa Williamsona :
Dla pliku o nazwie „my-.jpg”
pre="my-"; suf=".jpg"
<"$pre$suf" tee "$pre"{1..5}"$suf" >/dev/null
<"$pre$suf" tee "$pre"{1..5}"$suf"
działa dobrze.
for f in $f
zfor f in $(seq 5)
.