Programozás a bash-ban - 1. rész

Míg általában adminisztratív vagy fájlkezelési műveletekhez használjuk, a kényelem de Linux funkcionalitását messze meghaladja e célt, lehetővé téve számunkra a programozást szkriptek Ez az útmutató nem a Bash programozás teljes körű referenciája, hanem az alapvető parancsok és struktúrák bevezetése, amelyek lehetővé teszik számunkra, hogy bővítsük GNU / Linux rendszerünk erejét.

Mi az a "szkript"?

Alapvetően azt mondjuk, hogy ez egy fájl, amely egy bizonyos programozási nyelven írt kódot tartalmaz, amelyet a rendszer egy bizonyos feladatra használ. Nem szükséges külső bemenet vagy grafikus interfész, de a feldolgozott adatok kimenetét kell előidéznie (még akkor is, ha a felhasználó nem látja).

A Bash által használt nyelvet a saját tolmácsa határozza meg, és egyesíti a többi Shell szintaxisát, például a Korn Shell (ksh) vagy a C Shell (csh) szintaxisát. A konzolban általában használt parancsok közül sok használható szkriptekben is, kivéve azokat, amelyek szigorúan egy adott terjesztésre vonatkoznak.

A szkript felépítése

A kezdéshez rendelkeznünk kell szövegszerkesztővel és programozási vágyunkkal. A .sh kiterjesztéssel mentett fájlokat a konzol futtathatja (vagy értelmezheti), amennyiben az első sor a következő:

#! / bin / bash

Ez arra utasítja a rendszert, hogy a konzol segítségével futtassa a fájlt. Ezenkívül a # karakter lehetővé teszi megjegyzések írását. A legegyszerűbb példa létrehozásához adjunk még egy sort, amely a következő képen látható:

Az echo parancs üzenetet jelenít meg a képernyőn, ebben az esetben a tipikus "Hello world!" Ha elmentjük és végrehajtjuk a konzollal, látni fogjuk az eredményt.

Alapvető parancsok

A következő parancsok általánosak és nagyon hasznosak bármilyen típusú programhoz. Tisztázzuk, hogy még sok más van, de most a következőkre térünk ki.

Álnevek: lehetővé teszi, hogy a szavakat egy rövidebbre cseréljék, lehetővé téve a kód csökkentését.

# Létrehozunk egy per nevű álnevet a #Downloads mappa alias címével = "/ home / user / Downloads" # Minden alkalommal, amikor használni szeretnénk, csak # új szót kell hívnunk # # Az álnevek megsemmisítéséhez unialias unialikat használunk

törés: lehetővé teszi az azonnali kilépést a, míg, amíg vagy a ciklusból (a ciklusokat később részletesen tanulmányozzuk)

# Hozzon létre egy hurkot, amely 1-től 5-ig fogja rendelni a számokat # a hurok minden egyes fordulatához az 1 2 3 4 5 számlálóhoz. # Kinyomtatjuk a #counter változó aktuális értékét, amelyet a $ echo karakter elemez. " $ counter ”#Ha a számláló értéke 3, ha [$ counter –eq 3], akkor #The break kilép a ciklusból

folytatás - Hasonló a megszakításhoz, azzal a különbséggel, hogy figyelmen kívül hagyja az aktuális ciklust, és a következőre megy.

# Hozzon létre egy hurkot, amely 1-től 5-ig fogja rendelni a számokat # a hurok minden egyes fordulatához az 1 2 3 4 5 számlálóhoz. Tegye #Ha a számláló értéke 3, ha [$ számláló –eq 3], akkor #Folytassa megakadályozza az aktuális # ciklus többi elemzését a következő körre ugrással, vagyis a # 3. érték nem lesz kinyomtatva. folytatás fi echo "$ counter" kész

deklarál: deklaráljuk a változókat és hozzárendeljük hozzájuk az értékeket, ugyanúgy, mint a szett (ugyanúgy működnek). Egyesíthetjük néhány opcióval: -i egész számokat deklarál; -r csak olvasható változók esetén, amelyek értéke nem változtatható meg; –A mátrixok vagy „tömbök” esetében; -f funkciókhoz; -x azon változók számára, amelyek "exportálhatók" a szkript környezetén kívül.

deklarálja –i szám = 12 deklarálja –x pi = 3.14

help: segítséget mutat egy adott parancshoz.

job: a futó folyamatokat mutatja.

# A –c segítségével megmutatjuk a parancsok nevét, a –p # karakterrel az egyes folyamatok pid-jével (process id). munkahelyek -cp

let: értékelje a számtani kifejezést

hagyjuk a = 11 legyen a = a + 5 # Végül kinyomtatjuk a értéke 16 visszhangot "11 + 5 = $ a"

local: helyi változók létrehozása, amelyeket a hibák elkerülése érdekében lehetőleg a szkript funkcióiban kell használni. Ugyanazokat a funkciókat használhatja, mint a declare parancs.

local v1 = "Ez egy helyi változó"

kijelentkezés: lehetővé teszi a Shellből való teljes kijelentkezést; hasznos olyan esetekben, amikor egynél több héjablakkal dolgozunk, amelyekben az exit parancs egyszerre csak egy ablak bezárását teszi lehetővé.

printf: lehetővé teszi adatok kinyomtatását és formázását. Sok lehetősége van, ezért megemlítünk néhányat.

#% f lebegő számként nyomtat, n az új # sor nyomtatásához "% fn" 5 5.000000 # & d lehetővé teszi a tizedes számok átadását argumentumként printf "% d megrendelés% d dollárban van megadva. n" 20 500 Dollár.

read: olvas egy sort a standard bemenetből (például a billentyűzeten keresztüli adatok betöltésére használt modul). Olyan opciókat adhatunk át, mint: -t, hogy megadhassuk az olvasási határidőt; -a úgy, hogy minden szó az aname tömb egy pozíciójához van hozzárendelve; -d a sor végére írt határoló használatára; többek között.

echo "Írja be a nevét és nyomja meg az ENTER billentyűt" # Olvassa el a változó nevét olvassa el a nevet echo "A neve $ name"

type: leírja a parancsot és annak viselkedését. Hasznos lehet megtudni az egyes parancsok adatdefinícióit.

A –a '[' #type azt mondja, hogy a [egy Shell beépített parancs [egy a Shell beépített # -a parancs lehetővé teszi, hogy megtalálja azokat a könyvtárakat, amelyek # végrehajtó fájlt tartalmaznak a megadott névvel. [a / usr / bin / [

ulimit: bizonyos rendszererőforrások hozzáférését és használatát korlátozza a folyamatokhoz, ideális azokhoz a programokhoz, amelyek lehetővé teszik az adminisztratív változtatásokat, vagy amelyek különböző típusú felhasználók számára vannak orientálva. A határérték beállításakor írunk egy számot, amely a határ kilobájtjait képviseli.

# Látjuk, hogy az ulimit –a # -f a jelenlegi korlátainkat arra korlátozza, hogy a felhasználók ne # hozzanak létre 512000 Kb (500 # MB) méretű fájlokat. Az ulimit –f 512000 # -v korlátozza a folyamat virtuális memóriáját. ulimit –v 512000

vár: várjon egy bizonyos folyamat vagy feladat folytatását.

# A szkript megvárja a pid # 2585 folyamat végrehajtását

várj 2585

Más hasznos parancsokat, amelyeket hozzáadhatunk a szkriptekhez, szimbólumok jelzik.

!!: futtassa újra az utolsó parancsot

! wer: végrehajtja az utolsó parancsot, amely a „wer” kifejezéssel kezdődött.

'==', '! =', '>', '<', '> =' és '<=': relációs operátorok.

|: Az OR operátor általában két reguláris kifejezéshez csatlakozott.

: escape parancs, amely lehetővé teszi a kifejezések formázását. Például: a hangjelzéshez, n újsorhoz, b visszalépéshez stb.

Köszönöm Juan Carlos Ortiz!