Jak używać zmiennej w pętli bash? Gdybym po prostu użyć standard dla pętli, to robi to, czego oczekujęJak używać zmiennych w bash dla pętli
for i in {0..3}
do
echo "do some stuff $i"
done
To działa prawidłowo. Zapętla się 4 razy, od 0 do 3 włącznie, drukując wiadomość i licząc na końcu.
do some stuff 0
do some stuff 1
do some stuff 2
do some stuff 3
Gdy próbuję samo z następujących pętli, wydaje się równać ciąg, który nie jest to, co chcę.
length=3
for i in {0..$length}
do
echo "do something right $i"
done
wyjściowa:
do something right {0..3}
Próbowałem
for i in {0.."$length"} and for i in {0..${length}} (both output was {0..3})
i
for i in {0..'$length'} (output was {0..$length})
i oboje nie robić to, co muszę. Mam nadzieję, że ktoś może mi pomóc. Z góry dziękujemy za pomoc eksperta od bash dla pętli.
+1 Nie jestem fanem 'eval' ale podoba mi się sposób w jaki dajesz różne opcje w tej odpowiedzi. –
Pętla w stylu C jest oczywiście najlepszą opcją. –