Skip to main content

Hogyan írjunk Bash WHILE-hurkot?

MyHeritage - The Timeline (Június 2026)

MyHeritage - The Timeline (Június 2026)
Anonim

Parancsok sorozatát végrehajthatja szkriptfájlba írásával, majd futtatásával.

A szkriptfájl egyszerűen egy szövegfájl, általában a .SH fájlkiterjesztéssel, amely utasításokat tartalmaz, amelyek végrehajthatók a parancssorból (shell) is.

Míg a Loop példák

Az alábbiakban példaként említhetjük az idő hurokját. Futtatáskor a szkriptfájl a képernyőn az 1-9. Számokat nyomtatja ki. A time-statement nagyobb rugalmasságot biztosít a lezárási feltétel megadásához, mint a for-loop.

Például, az előző szkriptet végtelen hurokvá teheti, ha elhagyja a növekményes állítást "((count ++))":

Az "alvás 1" utasítás minden egyes iteráció után 1 másodpercig szünetelteti a végrehajtást. Használja a Ctrl + C billentyűkombinációt a folyamat befejezéséhez.

Végtelen hurokot is létrehozhat úgy, hogy kettőspontot állít be:

Annak érdekében, hogy többszörös feltételeket használhasson a hurokhurokban, használd a kettős szögletes zárójelet:

Ebben a szkriptben a "kész" változó 0-ra van inicializálva, majd 1-re állítva, ha a számlálás eléri az 5-öt. A hurok feltétel azt állítja, hogy a hurok addig folytatódik, amíg a "számlálás" kilencnél kevesebb és a "kész" egyenlő nullára. Ezért a hurok kilép, ha a számláló egyenlő az 5-ös értékkel.

A "&&" jelentése logikai "és" és "||" logikus "vagy".

A "és" és "vagy" feltételek között egy alternatív jelölés "-a" és "-o" egyszögletes zárójelekkel. A fenti feltétel:

… újraírható, mint:

A szövegfájl olvasása általában egy idő hurokkal történik. A következő példában a bash parancsfájl az "inventory.txt:" nevű fájl sorában olvasható a tartalom sorában.

Az első sor hozzárendeli a bemeneti fájl nevét a "FILE" változóhoz. A második sor elmenti a "standard bemenetet" a "6" fájlleíróban (ez bármilyen érték lehet 3 és 9 között). Ez úgy történik, hogy a "standard bemenet" visszaállítható a parancsfájl végén a "0" fájlleíróhoz (lásd az "exec 0 utasítás" parancsot. A 3. sorban a bemeneti fájl hozzárendelve a "0" fájlleíróhoz a szabványos bemenethez.A "read" utasítás aztán minden egyes iterációban leolvassa a fájl sorát, és a "line1" változóhoz rendel.

Annak érdekében, hogy az időhurok idő előtt elhagyhasson, használhatja a következő szüneteltetést:

A szüneteltetési utasítás a program végrehajtását a végére hágja, és végrehajtja az azt követő állításokat. Ebben az esetben a "visszhang kész" kifejezés.

A folytonos megfogalmazás azonban csak az aktuális iteráció miközben hurok utasításának hátralévő részét átugorja, és közvetlenül a következő iterációra ugrik:

Ebben az esetben a "folytatás" utasítás végrehajtódik, ha a "count" változó eléri a 5 értéket. Ez azt jelenti, hogy a következő utasítás (echo "$ count") nem fut le ezen az iteráción (amikor a "count" értéke 5).