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.
Nagy! Egyébként 2 megjegyzés: Az Ubuntu tag félig túl sok, mivel általánosít valamit. És ha ezek az oktatóanyagok tovább haladnak, jó lenne, ha összekapcsolódnának egymással ...
Ezen kívül érdekes ez a lépés!
Jó hozzájárulás! Nagy!
Csak azok hiányzó hivatkozások, akik többet akarnak belemenni az ügybe. Néhány jó, bár országunkban nem olyan könnyű megtalálni őket
- Gyakorlati útmutató a Linux parancsokhoz, szerkesztőkhöz és a héj programozásához, Mark Sobell (8. fejezet)
- Pro Bash Programming, Chris FA Johnson (bár ez azoknak szól, akik más referenciákkal rendelkeznek, vagy valamivel több ismerettel rendelkeznek).
Jó a cikk.
Jó randevú! Köszönöm!
: @ A "bejelentkezés másként" funkció törölte az előző megjegyzésemet, ezért tovább összefoglalom:
munkahelyek -cp
bash: jobok: -c: érvénytelen opció
jobok: használat: jobok [-lnprs] [jobspec…] vagy job -x parancs [args]
-eq -gt -lt nem fogadnak el tizedesváltozókat, a fórum és a fórum között felfedeztem, hogy a bc jó szövetséges:
ha [`visszhang 9.999> 10 | bc`-ekv 1]; akkor
echo "9.999 nagyobb, mint 10, győződjön meg róla, hogy a processzor továbbra is működik"
más
echo «9.999 nem nagyobb, mint 10, minden normálisan működik
fi
Ez a bejegyzés nagyon jól összefoglalja a bash szkriptek összes általánosságát:
http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html
Ezen az oldalon számos kérdést és választ talál a bash sajátosságairól:
http://unix.stackexchange.com/questions/tagged/bash
Íme néhány nagyon jó szkript, és hé, megtanulhatod őket mások szkriptjeinek elolvasásával:
http://snipplr.com/search.php?q=bash&btnsearch=go
Igazad van azzal, amit mondasz, a bash kivételével. Minden rendszerben, amit láttam, a / bin / bash fájl található.
De a python, a perl, a rubin stb. Esetében jó használni. Én igen
Véletlenül az egyetemen bash szkriptet használunk, így az adatok 10-esek, nagyon jó!
jó lenne egy letölthető pdf verzió !! 😀
Nagyon jó oldal. Végül találtam valami hasznosat. Köszönöm.