A Bash szkriptek jól jöhetnek a feladatok automatizálásához, és nagyszerűek lehetnek egyszerű parancssori alkalmazások létrehozásához. A Bash shell értelmezi a Bash-szkripteket, így nem kell semmilyen függőséget telepítenie azok írásához és futtatásához. A Bash szkriptek is hordozhatók, mivel a legtöbb Unix-alapú operációs rendszer ugyanazt a shell interpretert használja.
A Bash szkriptek ismerete minden fejlesztő számára kötelező, különösen, ha Unix-alapú rendszerekkel dolgozik.
Változók a Bashban
Bash változók megkülönböztetik a kis- és nagybetűket. A változók deklarálásához használjon egyenlőségjelet (=) a névvel a bal oldalon és az értékkel a jobb oldalon:
STATE=Washington
Az az érték, amelyet ez a deklaráció hozzárendel ÁLLAPOT egyetlen szó. Ha szóközre van szüksége az értékben, használjon idézőjeleket körülötte:
STATE="Észak-Arizona"
Dollárjelet kell használnia ($) a hivatkozási változók előtagja más változókban vagy utasításokban:
STATE=Washington
LOCATION="Az én helyem $STATE"
Értékek nyomtatása Bash nyelven
A Bash-ban többféleképpen nyomtathat változókat. Használhatja a visszhang parancs az alapkimenethez vagy a C-stílushoz printf parancs a karakterlánc formázásához.
STATE=Washington
LOCATION="Az én helyem $STATE"
visszhang$LOCATION
Miután kijelentette a ÁLLAPOT változó, ez a szkript határozza meg ELHELYEZKEDÉS a STATE hivatkozással. Az If ezután az echo segítségével kiírja a LOCATION változó végső értékét.
Az printf kulcsszó lehetővé teszi a formázási igék használatát az adatok kimenetére. A karakterlánc-formázó igék hasonlóak a C és Go nyelvű igékhez, de korlátozott igéket tartalmaznak.
Ige | Funkcionalitás |
---|---|
%c | egyetlen karaktert nyomtat |
%o | oktadecimálisan nyomtat |
%s | karakterláncokat nyomtat, a burkolattól függetlenül |
%x | kisbetűs hexadecimálist nyomtat |
%X | nagybetűket ír ki hexadecimálisan |
%d | egész számokat nyomtat |
%e | a tudományos fogalmat kisbetűvel írja le |
%E | a tudományos fogalmat nagybetűvel írja le |
%f | lebegőpontos számokat nyomtat |
%% | egyetlen százalékos szimbólumot nyomtat. |
Íme egy példa egy ige használatára a nyomtatás kulcsszó.
STATE=Lagos
printf "Az én helyem: %s" $STATE
Az printf függvény helyettesítené a ÁLLAPOT változó a pozíciójában %s ige, és a kimenet a „My Location is Lagos” lenne.
Bash nyelven megjegyzéseket írhat a hash vagy font (#) szimbólum. A shell automatikusan figyelmen kívül hagyja a megjegyzéseket.
#!/bin/bash
# STATE=Washington
# LOCATION="A tartózkodási helyem: $STATE"
Nincsenek többsoros megjegyzések. A legtöbb IDE és szövegszerkesztő lehetővé teszi a megjegyzéseket a Ctrl/Command + perjel(/) billentyűparancs használatával. A parancsikon segítségével több egysoros megjegyzést is létrehozhat.
Felhasználói bevitel fogadása Bashban
Sok más programozási nyelvhez hasonlóan a Bash-ban is fogadhat felhasználói bevitelt, hogy programjait/szkriptjeit interaktívabbá tegye. Használhatja a olvas parancsot a felhasználó bevitelének kéréséhez.
olvas válasz
Ebben az esetben a válasz változó tárolja a felhasználó bevitelét kézbesítéskor.
echo "Mit akarsz?:"
olvassa el a választ
echo $válasz
A felhasználói beviteli kérés egy új sorban lesz a fenti példában.
Hozzáadhatja a -n zászlót a visszhang print utasítás, hogy megtartsa azt a sort, amelybe a felhasználó beírja a bevitelt.
echo -n "Mit akarsz."
olvassa el a választ
echo $válasz
Tömbök deklarálása Bashban
Tömbök Bashban olyanok, mint a legtöbb nyelv. Egy tömbváltozót deklarálhat a Bash-ban, ha megadja az elemeket zárójelben.
Országok=('USA' 'Oroszország' 'Ukrajna', "Anglia", "Tajvan", "Kína")
Egy tömbhöz való hozzáférés a változó nevére való hivatkozással az első elemet kéri le. A teljes tömbhöz hozzáférhet, ha indexként használja a csillag jelet.
echo ${Countries[*]}
Egy adott elem eléréséhez megadhatja a tömb indexét is. Egy tömb indexe nullával kezdődik.
visszhang "${Countries[4]}"
Feltételes nyilatkozatok Bash nyelven
A Bash feltételeket biztosít a döntéshozatalhoz a programokban.
Íme egy if-else kijelentés anatómiája a Bash-ban. Pontosvesszővel kell megadnia a feltétel végét.
ha [[ állapot ]]; akkor
visszhang nyilatkozat1
elif [[állapot ]]; akkor
visszhang nyilatkozat2
más [[állapot ]]; akkor
visszhang nyilatkozat3
fi
Mindennek véget kell vetnie ha nyilatkozatot a fi kulcsszó.
ha [ 1 == 2 ]; akkor
visszhang egy
elif [ 2 == 3 ]; akkor#egyéb-ha
visszhang két
más [ 4 > 3 ];
visszhang "helyes, 3"
fi
A Bash programjaiban az esetkiírásokat használhatja a ügy kulcsszó. Meg kell adnia a mintát, amelyet zárójelek követnek az utasítás előtt.
CITY=Lagos
ügy$CITYban ben
"Washington") # minta
visszhang "Amerikai egyesült államok" # nyilatkozat
;; # ügy vége
"Lagos" | "Abuja")
visszhang "Nigéria"
;;
"Johannesburg" | "Fokváros")
visszhang "Dél-Afrika"
;;
*) # alapértelmezett minta
visszhang "Antarktisz" # alapértelmezett utasítás
;;
esac# az esetkifejezés vége
Megadhatja az alapértelmezett kis- és nagybetűt a csillag (*) jellel mintaként. Az esetleírásoknak a -val kell végződniük esac kulcsszó.
Hurok a Bashban
Igényeitől függően használhat while ciklust, range for-loopot vagy C-stílust for ciklus ismétlődő műveletekhez.
Íme egy példa a C stílusú for-loopra. A for-huroknak a karakterrel kell végződnie Kész kulcsszót, és a for utasítást pontosvesszővel kell zárnia, amelyet a csináld kulcsszó.
számára ((a = 0; a < 10; a+2)); csináld
visszhang$a
Kész
A for loop tartomány jól használható fájlokkal való munkavégzéshez és sok más művelethez. Használnia kell a ban ben kulcsszó a for-ciklus tartományával.
számára én ban ben {1..7}; csináld
visszhang$1
Kész
Íme egy egyszerű végtelen ciklus a Bash bemutatására míg hurkok működés közben.
név=1
míg [ 1 - le 5 ] # míg 1 < 5
csináld
visszhang$név
Kész
Az -le a feltétel utasításban a kevesebb mint bináris operátora.
Funkciók a Bashban
Nincs szükség kulcsszavakra a Bash függvények deklarálásához. A függvényeket a névvel, majd a függvény törzse előtt zárójelekkel deklarálhatja.
print_working_directory() {
visszhang$PWD#a PWD parancs meghívása a szkriptből
}
visszhang "Te vagy ban ben $(nyomtatási_munkakönyvtár)"
A függvények változókat adhatnak vissza Bashban. Csak a Visszatérés kulcsszó.
print_working_directory() {
Visszatérés$PWD
}
Az print_working_directory függvény visszaadja a fájl munkakönyvtárát.
Shell-szkripteket írhat más nyelveken is
Nem a Bash az egyetlen nyelv, amellyel interakcióba léphet az operációs rendszer héjával vagy parancssori alkalmazásokat hozhat létre. Sok más nyelvet is használhat, például Go, Python, Ruby és Rust.
Sok operációs rendszerben van előre telepítve a Python3, és a Python egy elterjedt nyelv. Ha még több funkcióra van szüksége, mint amit a Bash szkriptek kínálnak, fontolja meg a Python használatát.