Bash skripti pridejo prav za avtomatizacijo opravil in ugotovili boste, da so odlični za izdelavo preprostih aplikacij ukazne vrstice. Lupina Bash interpretira skripte Bash, zato vam za njihovo pisanje in izvajanje ne bo treba namestiti nobenih odvisnosti. Bash skripti so tudi prenosljivi, saj večina operacijskih sistemov, ki temeljijo na Unixu, uporablja isti tolmač lupine.
Poznavanje skriptov Bash je nujno za vsakega razvijalca, še posebej, če delate s sistemi, ki temeljijo na Unixu.
Spremenljivke v Bashu
Bash spremenljivke razlikujejo med velikimi in malimi črkami. Za deklaracijo spremenljivk uporabite znak enačaja (=) z imenom na levi in vrednostjo na desni:
STATE=Washington
Vrednost, ki ji je ta deklaracija dodeljena DRŽAVA je ena sama beseda. Če potrebujete presledke v vrednosti, uporabite narekovaje:
STATE="Severna Arizona"
Uporabiti boste morali znak za dolar ($) predpona za sklicevanje na spremenljivke v drugih spremenljivkah ali stavkih:
STATE=Washington
LOCATION="Moja lokacija je $STATE"
Tiskanje vrednosti v Bashu
V Bashu lahko natisnete spremenljivke na več načinov. Lahko uporabite odmev ukaz za osnovni izpis ali slog C printf ukaz za oblikovanje niza.
STATE=Washington
LOCATION="Moja lokacija je $STATE"
odmev$LOCATION
Po razglasitvi DRŽAVA spremenljivko, definira ta skript LOKACIJA s sklicevanjem na STATE. If nato uporabi echo za tiskanje končne vrednosti spremenljivke LOCATION.
The printf ključna beseda vam omogoča uporabo glagolov oblikovanja za izpis podatkov. Glagoli za oblikovanje nizov so podobni tistim v C in Go, vendar z omejenimi glagoli.
Glagol | Funkcionalnost |
---|---|
%c | natisne posamezne znake |
%o | natisne oktadecimalke |
%s | natisne nize, neodvisno od ohišja |
%x | natisne male črke šestnajstiško |
%X | natisne šestnajstiško z velikimi črkami |
%d | natisne cela števila |
%e | natisne znanstveni pojem lebdi z malimi črkami |
%E | natisne znanstveni pojem lebdi z velikimi črkami |
%f | natisne števila s plavajočo vejico |
%% | natisne simbol za en odstotek. |
Tukaj je primer uporabe glagola z tiskanje ključna beseda.
STATE=Lagos
printf "Moja lokacija je %s" $STATE
The printf funkcija bi nadomestila DRŽAVA spremenljivka v položaju %s glagol, rezultat pa bi bil »Moja lokacija je Lagos«.
V Bashu lahko komentirate z zgoščevanjem ali funtom (#) simbol. Lupina samodejno ignorira komentarje.
#!/bin/bash
# STATE=Washington
# LOCATION="Moja lokacija je $STATE"
Večvrstičnih komentarjev ni. Večina IDE-jev in urejevalnikov besedil vam omogoča komentiranje z bližnjico Ctrl/Command + poševnica (/). Morali bi imeti možnost uporabiti bližnjico za ustvarjanje več enovrstičnih komentarjev.
Prejemanje uporabniškega vnosa v Bash
Tako kot mnogi drugi programski jeziki lahko tudi v Bashu prejemate uporabniške vnose, da bodo vaši programi/skripti bolj interaktivni. Lahko uporabite prebrati ukaz za zahtevo po vnosu uporabnika.
prebrati odgovor
V tem primeru je odgovor spremenljivka bo vsebovala uporabnikov vnos ob dostavi.
echo "Kaj hočeš?:"
preberi odgovor
echo $response
Zahteva za vnos uporabnika bo v zgornjem primeru v novi vrstici.
Dodate lahko -n zastavo do odmev natisnite stavek, da ohranite vrstico, kjer uporabnik vnese vnos.
echo -n "Kaj hočeš."
preberi odgovor
echo $response
Deklariranje nizov v Bashu
Nizi v Bashu so tako kot večina jezikov. Spremenljivko polja lahko deklarirate v Bashu tako, da navedete elemente v oklepajih.
Države=('ZDA' 'Rusija' 'Ukrajina', "Anglija", "Tajvan", "Kitajska")
Dostop do matrike prek sklicevanja na ime spremenljivke bi pridobil prvi element. Do celotne matrike lahko dostopate tako, da kot indeks uporabite znak zvezdice.
echo ${Countries[*]}
Določite lahko tudi indeks matrike za dostop do določenega elementa. Indeks matrike se začne pri nič.
odmev "${države[4]}"
Pogojni stavki v Bashu
Bash nudi pogoje za sprejemanje odločitev v programih.
Tukaj je anatomija stavka if-else v Bashu. Za določitev konca pogoja boste morali uporabiti podpičje.
če [[ stanje ]]; potem
odmev izjava1
elif [[pogoj]]; potem
odmev izjava2
drugače [[pogoj]]; potem
odmev izjava3
fi
Končati morate vsako če izjava z fi ključna beseda.
če [ 1 == 2 ]; potem
odmev eno
elif [ 2 == 3 ]; potem#drugače-če
odmev dva
drugače [ 4 > 3 ];
odmev "pravilno, 3"
fi
Stavke velikih in malih črk lahko uporabite v svojih programih Bash z uporabo Ovitek ključna beseda. Pred stavkom boste morali določiti vzorec, ki mu sledijo končni oklepaji.
MESTO=Lagos
Ovitek$CITYv
"Washington") # vzorec
odmev "Združene države Amerike" # izjava
;; # konec primera
"Lagos" | "Abuja")
odmev "Nigerija"
;;
"Johannesburg" | "Cape Town")
odmev "Južna Afrika"
;;
*) # privzeti vzorec
odmev "Antarktika" # privzeta izjava
;;
esac# konec izjave o primeru
Privzeto velikost črk lahko določite z uporabo znaka zvezdice (*) kot vzorca. Izjave primerov se morajo končati z esac ključna beseda.
Zanke v Bashu
Odvisno od vaših potreb lahko uporabite zanko while, zanko obsega za zanko ali slog C zanka for za ponavljajoče se operacije.
Tukaj je primer for-zanke v slogu C. Zanke za se morajo končati z Končano in stavek for morate končati s podpičjem, ki mu sledi narediti ključna beseda.
za ((a = 0; a < 10; a+2)); narediti
odmev$a
Končano
Območje zanke je priročno za delo z datotekami in številne druge operacije. Uporabiti boste morali v ključna beseda z obsegom for-loop.
za jaz v {1..7}; narediti
odmev$1
Končano
Tukaj je preprosta neskončna zanka za predstavitev Basha medtem zanke v akciji.
ime=1
medtem [ 1 - le 5 ] # medtem ko je 1 < 5
narediti
odmev$name
Končano
The -le v stavku pogoja je binarni operator za manj kot.
Funkcije v Bashu
Za deklaracijo funkcij v Bashu ne potrebujete ključnih besed. Funkcije lahko deklarirate z imenom in nato z oklepaji pred telesom funkcije.
tiskalni_delovni_imenik() {
odmev$PWD#klic ukaza PWD iz skripta
}
odmev "Saj si v $(print_working_directory)"
Funkcije lahko vrnejo spremenljivke v Bashu. Vse kar potrebujete je vrnitev ključna beseda.
tiskalni_delovni_imenik() {
vrnitev$PWD
}
The tiskalni_delovni_imenik funkcija vrne delovni imenik datoteke.
Lupinske skripte lahko pišete v drugih jezikih
Bash ni edini jezik, ki ga lahko uporabite za interakcijo z lupino operacijskega sistema ali izdelavo aplikacij v ukazni vrstici. Uporabljate lahko številne druge jezike, kot so Go, Python, Ruby in Rust.
Mnogi operacijski sistemi imajo vnaprej nameščen Python3 in Python je prevladujoč jezik. Če potrebujete še več funkcionalnosti, kot jih lahko ponudijo skripti Bash, razmislite o uporabi Pythona.