Câu trả lời:
Thử đi
for f in {1..5}; do cp my.jpg my$f.jpg; done
(đừng có bash ở đây để tự mình thử)
for loop
?
seq
Không cần thiết ở Bash. Bạn có thể sử dụng for f in {1..5}
hoặcfor ((f=1; f<=5; f++))
Đây là một cách để làm điều đó mà không cần for
vòng lặp và không có rủi ro khi sử dụng eval
:
printf '%s\n' {1..5} | xargs -I {} cp my.jpg my-{}.jpg
Nó vẫn thực sự là một vòng lặp.
Bạn có thể làm điều đó mà không cần một vòng lặp .. sử dụng tee
và {}
mở rộng cú đúp.
EDIT: (được bổ sung theo nhận xét của Dennis Williamson :
Đối với một tệp có tên "my-.jpg"
pre="my-"; suf=".jpg"
<"$pre$suf" tee "$pre"{1..5}"$suf" >/dev/null
<"$pre$suf" tee "$pre"{1..5}"$suf"
hoạt động tốt
for f in $f
bằngfor f in $(seq 5)
.