Parancsok, szintaxisok és példák
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 .
#! / bin / bash count = 1, miközben [$ count -le 9] echo "$ count" alvás 1 ((count ++)) készPéldául, az előző szkriptet végtelen hurokvá teheti, ha elhagyja a növekményes állítást "((count ++))":
#! / bin / bash count = 1, miközben a [$ count -le 9] echo "$ count" alvás 1 készAz "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:
#! / bin / bash count = 1 miközben: echo "$ count" alvás 1 ((count ++)) készAnnak érdekében, hogy többszörös feltételeket használhasson a hurokhurokban, használd a kettős szögletes zárójelet:
count = 1 kész = 0, míg [[$ count -le 9] && [$ done == 0]] echo "$ count" alvás 1 ((count ++)), ha [$ count == 5]; akkor $ done = 1 fi készEbben 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:
[[$ count -le 9] && [$ done == 0]]... újraírható, mint:
[$ count -le 9] -a [$ done == 0]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.
FILE = inventory.txt exec 6Az 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:
count = 1 kész = 0, miközben [$ count -le 9] echo "$ count" alvás 1 ((count ++)) ha [$ count == 5]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:
count = 1 kész = 0, miközben [$ count -le 9] aludni 1 ((count ++)) ha [$ count == 5] majd folytassa fi echo "$ count" kész echo készEbben 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).