Silmukat: `for`, `while`, `until`
Automatisoikaa toistuvia tehtäviä ottamalla shell-skriptien erilaiset silmukat haltuun.
Silmukat: `for`, `while`, `until` on ilmainen Linuxin komentorivin hallinta-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Linuxin komentorivin hallinta-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Linuxin komentorivin hallinta-kurssilla on yhteensä 4 oppituntia.
Miksi silmukoita käytetään?
Kuvitelkaa, että teidän täytyy suorittaa sama toiminto monta kertaa, esimerkiksi sanoa "Hei" kaikille luettelossa oleville tai laskea luvusta 1 lukuun 100. Tämän tekeminen käsin olisi työlästä ja altista virheille.
Tässä silmukat tulevat avuksi! Silmukoiden avulla komentosarja voi toistaa komentojoukon useita kertoja, mikä säästää vaivaa ja tekee komentosarjoista tehokkaampia.
Kohteiden läpikäynti `for`-silmukalla
for-silmukka sopii erinomaisesti tilanteisiin, joissa tiedätte tarkalleen, mitkä kohteet haluatte käydä läpi. Se käy luettelon läpi käsitellen jokaisen kohteen yksi kerrallaan.
Sen perussyntaksi näyttää tältä:
for item in list; do# commands to run for each itemdone
item-muuttuja sisältää vuorollaan jokaisen arvon list-luettelosta.
`for`-silmukka käytännössä
Katsotaan, miten for-silmukka käy nimiluettelon läpi. Jokainen nimi sijoitetaan name-muuttujaan ja tulostetaan sen jälkeen.
Kokeilkaa suorittaa tämä esimerkki:
#!/bin/bash
echo "--- Greeting Friends ---"
for name in Alice Bob Charlie;
do
echo "Hello, $name!"
done
echo "--- All greeted! ---"Lukualueiden käsittely `for`-silmukalla
Entä jos silmukan pitää toistua tietty määrä kertoja, esimerkiksi laskea luvusta 1 lukuun 5? Voitte muodostaa for-silmukkaa varten sarjoja:
- Aaltosuljelaajennus:
{1..5}luo merkkijonon "1 2 3 4 5". seq-komento:$(seq 1 5)luo myös merkkijonon "1 2 3 4 5".
Molemmat ovat käteviä numeerisissa iteraatioissa.
Laskeminen `for`-silmukalla
Näin voitte käyttää aaltosuljelaajennusta tiettyyn lukuun asti laskemiseen. Silmukkamuuttuja i saa vuorollaan jokaisen sarjassa olevan luvun.
Kokeilkaa suorittaa tämä esimerkki:
#!/bin/bash
echo "Counting up!"
for i in {1..3};
do
echo "Count: $i"
done
echo "Done counting."Toistaminen `while`-silmukalla
while-silmukkaa käytetään, kun komentoja halutaan toistaa niin kauan kuin tietty ehto pysyy totena. Ehto tarkistetaan jatkuvasti ennen jokaista iteraatiota.
Sen perusrakenne on:
while condition; do# commands to rundone
Silmukka pysähtyy heti, kun condition muuttuu epätodeksi.
`while`-silmukan laskuri
Käytetään while-silmukkaa laskemiseen. Alustamme muuttujan count, ja silmukka jatkuu niin kauan kuin count on pienempi kuin 3.
Muistakaa päivittää muuttujaa silmukan sisällä, sillä muuten silmukka saattaa suorittua loputtomasti (eli jäädä "äärettömään silmukkaan")!
#!/bin/bash
count=0
echo "Starting while loop..."
while [ $count -lt 3 ]; do
echo "Current count: $count"
count=$((count + 1))
done
echo "While loop finished."Toistaminen `until`-ehdon täyttymiseen asti
until-silmukka muistuttaa while-silmukkaa, mutta sen ehto on käänteinen. Se suorittaa komentoja, kunnes määritetty ehto muuttuu todeksi.
Sen syntaksi on:
until condition; do# commands to rundone
Silmukka jatkuu niin kauan kuin condition on epätosi.
`until`-silmukka käytännössä
Tässä until-silmukka odottaa, että muuttuja num saavuttaa arvon 3. Se suoritetaan niin kauan kuin num ei ole suurempi tai yhtä suuri kuin 3.
Kokeilkaa suorittaa tämä esimerkki:
#!/bin/bash
num=0
echo "Starting until loop..."
until [ $num -ge 3 ]; do
echo "Current number: $num"
num=$((num + 1))
done
echo "Until loop finished."Milloin mitäkin silmukkaa käytetään?
Oikean silmukan valitseminen tekee komentosarjoista selkeämpiä ja tehokkaampia:
for-silmukka: sopii parhaiten tunnetun kohdeluettelon (tiedostot, nimet tai lukualueen numerot) läpikäyntiin.while-silmukka: ihanteellinen, kun komentoja pitää toistaa niin kauan kuin ehto on tosi (esimerkiksi luettaessa tiedoston rivejä, odotettaessa käyttäjän syötettä tai laskettaessa).until-silmukka: hyödyllinen, kun komentoja halutaan toistaa, kunnes tietty ehto muuttuu todeksi (esimerkiksi odotettaessa prosessin valmistumista tai yritettäessä toimintoa uudelleen).
Silmukkahaaste
Testataan, miten hyvin ymmärrätte shell-silmukat.
Silmukat: nopea kertaus
Hienosti tehty! Olette oppineet shell-komentosarjojen keskeiset silmukkarakenteet:
for-silmukka käy läpi kiinteän kohdeluettelon tai lukualueen.while-silmukka toistaa komentoja niin kauan kuin ehto on tosi.until-silmukka toistaa komentoja, kunnes ehto muuttuu todeksi.
Nämä silmukat ovat välttämättömiä toistuvien tehtävien automatisoinnissa sekä dynaamisten ja tehokkaiden komentosarjojen luomisessa. Jatkakaa harjoittelua!
Opi Linuxin komentorivin hallinta tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Silmukat: `for`, `while`, `until`” ilmainen?
Kyllä – oppitunnin ”Silmukat: `for`, `while`, `until`” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Linuxin komentorivin hallinta-kurssin, päivitä CoddyKit PROhon. Linuxin komentorivin hallinta-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Silmukat: `for`, `while`, `until`”?
Automatisoikaa toistuvia tehtäviä ottamalla shell-skriptien erilaiset silmukat haltuun. Harjoittelet Linuxin komentorivin hallinta-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Linuxin komentorivin hallinta-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Linuxin komentorivin hallinta-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Silmukat: `for`, `while`, `until`”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Linuxin komentorivin hallinta-oppitunnilla?
Kyllä. Jokainen Linuxin komentorivin hallinta-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Muuttujat, syöte ja tuloste
- Ehtolauseet: `if`, `else`, `case`
- Silmukat: `for`, `while`, `until`
- Funktiot ja argumentit shell-skripteissä