Írásban scripteket bash, losst

Nem számít, milyen egyszerű volt a grafikus felhasználói felület Linux és mennyivel jobb vagy rosszabb funkciók, még mindig van egy probléma, hogy sokkal kényelmesebb, hogy megoldja a terminálon keresztül. Egyrészt azért, mert gyorsabb, másrészt - nem minden gép rendelkezik egy grafikus felület, mint a szerverek, minden műveletet végezzen a terminálon keresztül, annak érdekében, hogy megmentse számítási erőforrások.

scripting Basics

Script, vagy ahogy nevezik - a forgatókönyv több parancs, ami beolvassa és végrehajtja a programot tolmács, ebben az esetben, egy parancssoros program - bash.

Script - egy egyszerű szöveges fájl, amely felsorolja a közös parancsok, hogy szoktuk kézzel kell bevinni, valamint orientációs program, amely teljesíti azokat. A rakodógép, amely végrehajtja a szkript nem tud dolgozni a környezeti változók, ezért szükséges, hogy át a pontos elérési utat a kívánt programot futtatni. Aztán volt, hogy a szkript ezt a programot, és végrehajtásának megkezdése.

A legegyszerűbb példa a forgatókönyvet a Bash shell:

#! / Bin / bash
echo „Helló világ”

Hogyan írjunk forgatókönyvet

echo segédprogram megjeleníti a húr megadott paraméterek a képernyőn. Az első sor különleges, ő határozza olyan program, amely végrehajtja a parancsokat. Általánosságban elmondható, hogy mi is létrehozhatunk egy script minden más programozási nyelv, és adja meg a kívánt tolmács, például a python:

#! / Usr / bin / env python
print ( "Hello world")

#! / Usr / bin / env php
echo „Helló világ”;

Ez a zászló nem változik semmit a fájl maga, csak azt mondja a rendszer, hogy ez nem egyszerűen egy szöveges fájl, és a program és annak szükségességét, hogy végre, nyissa meg a fájlt, keresse meg a tolmács és a végrehajtás. Amennyiben a tolmács nincs megadva, akkor alapértelmezés szerint a felhasználó shell. De mivel nem mindenki használja bash, meg kell adnia azt explicit módon.

$ Chmod + x ugo fayl_skripta

Most mi a mi kis első program:

Hogyan írjunk forgatókönyvet

Minden működik. Ön már tudja, hogyan kell írni egy kis script, például a frissítéshez. Mint látható, a szkriptek tartalmazzák ugyanazokat a parancsokat, amelyek végre a terminál, akkor írni nagyon egyszerű. De most van egy kis bonyolítja a feladat. Mivel a szkript egy olyan program, hogy meg kell tennie néhány döntést, tárolja az eredményeket a parancsokat és végrehajtja ciklus. Mindez lehetővé teszi számunkra, hogy nem Bash shell. Igaz, van sokkal bonyolultabb. Kezdjük egy egyszerű.

Változókat a szkripteket

Írásban scripteket Bash ritkán mentés nélkül az ideiglenes adatok, és ezzel változókat. Anélkül változók nem tud semmilyen programozási nyelv és a mi primitív shell nyelven is.

Lehet, hogy már korábban találkozott környezeti változókat. Szóval, ezek ugyanazok a változók, és nagyon jól működik.

Például, hogy egy változót szöveg:

Jelentés a jegyzett szálakat. Valójában azonban az idézetek nem mindig szükséges. Fennáll a fő elv a bash - tér - egy különleges karakter, elválasztó, így ha nem használ idézőjeleket világ már figyelembe kell venni egy külön utasítás ugyanazon okból nem tesz szóközt előtt és után az egyenlőségjel.

Megjelenítéséhez az érték a $ jelet használják. Például:

Mi módosítsa a script:

Bash nem tesz különbséget típusú változók, mint a magas szintű nyelvek, mint a C ++, hozzá lehet rendelni egy változót, mint a szám és string. Mindegy úgy kell tekinteni, mint egy húr. A héj csak támogatja egyesülő sor, ez egyszerűen írja le a változók neveit egy sorban:

#! / Bin / bash
string1 = "hello"
sztring2 = világ
string = $ sztring1 $ karakterlánc2 \ és \ nekem
Karakterlánc3 = $ sztring1 $ karakterlánc2 „és én”
echo $ Karakterlánc3

Hogyan írjunk forgatókönyvet

Felhívjuk figyelmét, hogy mint mondtam, az idézetek nem kötelező, ha a sorban nincs speciális karaktereket. Nézd meg alaposan a két vonal egyesítése módszereket is kimutatták a szerepét a jegyzések. Ha szüksége van kifinomultabb módon feldolgozó vonalak vagy aritmetikai műveletek, az nem szerepel a héj a lehető erre a célra, a hagyományos eszközökkel.

Változók és kimeneti parancsokra

Változók nem lenne olyan hasznos, mintha, hogy írják le az eredményt a közművek nem lehet őket. Ehhez használja a következő szintaxist:

Ezzel a kialakítással a csapat kimenet irányítva jövök, ahol nevezték, nem a képernyőn. Például az időpont, amikor a közüzemi visszaadja az aktuális dátumot. Ezek a parancsok ekvivalensek:

Hogyan írjunk forgatókönyvet

string1 = "hello world"
karakterlánc2 = $ (date)

Hogyan írjunk forgatókönyvet

Most, hogy már ismeri eléggé a változók, és készen áll, hogy hozzon létre egy bash script, de ez még nem minden. Ezután vesszük a paramétereket és ellenőrzési struktúrák. Hadd emlékeztessem önöket, hogy ez a szokásos parancsokat bash, és akkor nem kell menteni őket egy fájlba is történhet közvetlenül a mozgásban.

A paraméterek a script

Ez nem mindig lehetséges, hogy hozzon létre egy bash script, ami nem függ a felhasználótól. A legtöbb esetben meg kell kérni a felhasználót, mit tegyen, vagy hogy mely fájlt használ. tudjuk átadni paramétereket, ha hívja a forgatókönyvet. Mindezek a paraméterek állnak rendelkezésre, mint változók nevek számok formájában.

Változó elemzi 1 tartalmazza az érték az első paraméter, változó, 2 második és így tovább. Ez bash script megjeleníti az első paraméter:

Hogyan írjunk forgatókönyvet

Hogyan írjunk forgatókönyvet

Ellenőrzési struktúrákat Scripts

Creation nem lenne annyira hasznos bash script nélkül képes elemezni az egyes tényezők és elvégzésére, amire válaszul a kívánt intézkedéseket. Ez elég bonyolult téma, de nagyon fontos, hogy hozzon létre egy bash script.

A Bash egy csapat a szintaxis, hogy tesztelje feltételek:

Ez a parancs ellenőrzi a feltétel kód a parancs befejezéséhez, és ha 0 (sikeres), amely végrehajtja a parancsot vagy több parancsot a szó után, akkor, ha a kilépési kód 1 végezzük blokk más, fi jelenti a befejezése a készülék parancsokat.

De mivel gyakran nem vagyunk érdekeltek csapatok visszatérési kód és összehasonlítjuk húrok és számok, a csapat vezették be [[, amely lehetővé teszi, hogy végezze el a különböző összehasonlításokat, és egy visszatérési kódot függően az összehasonlítás eredményének. A szintaxis a következő:

[[Paraméter1 Paraméter2 üzemeltetője]]

Összehasonlításképpen szoktuk a már ismert nyilatkozatok <,>,=, =, Stb Ha a kifejezés igaz, akkor a parancs értéke 0, ha nem -. 1. Meg lehet próbálni egy kis terminál viselkedését. utolsó parancs visszatérési kód tárolódik a változó $?:

Hogyan írjunk forgatókönyvet

Most ötvözi mindezt, és hogy a forgatókönyvet a feltételes kifejezés:

#! / Bin / bash
ha [[$ 1> 2]]
majd
echo $ 1 "nagyobb, mint 2"
más
echo $ 1 „kevesebb, mint 2 vagy 2 '
fi

Hogyan írjunk forgatókönyvet

Hogyan írjunk forgatókönyvet

Természetesen ez a kialakítás nagyobb teljesítményű funkciók, de ez túl nehéz, hogy fontolja meg őket ebben a cikkben. Talán majd írok róla később. És most nézzük ciklus.

Ciklusok szkriptek

Az előnye, hogy programokat, hogy mi lehet egy pár sort, hogy meghatározza, hogy milyen lépéseket kell végrehajtani többször. Például lehetséges, hogy írjon scripteket bash, melynek keretében csak néhány sort, és futni óra paramétereinek elemzése és elvégzi a kívánt műveletet.

Először nézd meg a ciklus. Itt a szintaxis:

Ez megy keresztül a teljes listát, és hozzárendeli a változó értéke egy időben a listáról, miután minden egyes megbízás parancsokat hajt között található do és kész.

Például, nézzük át az öt számot:

az index januárban 2 3 4 5
csinál
echo $ index
csinált

Hogyan írjunk forgatókönyvet

Hogyan írjunk forgatókönyvet

Vagy lehet felsorolni az összes fájlt az aktuális könyvtárban:

$ For file in $ (ls -l); do echo "$ file"; csinált

Hogyan írjunk forgatókönyvet

El tudod képzelni, akkor nem csak jelenjenek meg a nevek, hanem elvégzi a szükséges lépéseket, hogy ez nagyon hasznos, ha létrehoz egy bash script.

A második ciklus, amely azt fogja nézni - ez a while, fut, amíg a feltételek parancs visszaadja kód 0, a siker. Tekintsük a következő parancsot:

#! / Bin / bash
index = 1
míg a [[$ index <5 ]]
csinál
echo $ index
hagyja "index = index + 1"
csinált

Hogyan írjunk forgatókönyvet

Hogyan írjunk forgatókönyvet

Mint látható, minden kész, hagyja, hogy a csapat egyszerűen végrehajtja a megadott matematikai művelet, ebben az esetben növeli a változó értékét eggyel.

Szeretném megemlíteni valami mást. Az ilyen minták, míg az, ha számítva a rekord egy pár sort, és ha megpróbálja felvenni őket egy sorban, akkor kap egy hiba. Mindazonáltal lehetséges, hogy nem ott van, ahol kell egy vonalat töréspontot tesz egy kóma „;”. Például az előző ciklusban is végezhető egy sorban:

index = 1; míg a [[$ index <5 ]]; do echo $index; let "index=index+1"; done;

Ez nagyon egyszerű, megpróbáltam nem bonyolítja a történetet további feltételek és lehetőségek bash, csak a legalapvetőbb. Bizonyos esetekben szükség lehet, hogy a gui egy bash script. akkor használd programokat, mint például zenity vagy kdialog, használja őket nagyon kényelmes üzenetek megjelenítéséhez a felhasználó, és még kér az információkat.

Most, hogy megértsék az alapokat teremt a script a Linux és írhat a kívánt forgatókönyvet, például a mentés. Megpróbáltam úgy a bash script a semmiből. Ezért nem minden szempontokat vettük figyelembe. Talán majd térjen vissza erre a témára egy későbbi cikkben.