„Bash“ scenarijai yra naudingi automatizuojant užduotis, be to, jie puikiai tinka kuriant paprastas komandų eilutės programas. „Bash“ apvalkalas interpretuoja „Bash“ scenarijus, todėl jums nereikės įdiegti jokių priklausomybių, kad galėtumėte juos rašyti ir paleisti. „Bash“ scenarijai taip pat yra nešiojami, nes dauguma „Unix“ pagrįstų operacinių sistemų naudoja tą patį apvalkalo interpretatorių.
Bash scenarijaus žinios yra būtinos kiekvienam kūrėjui, ypač jei dirbate su Unix sistemomis.
Kintamieji Bash
Bash kintamieji yra didžiosios ir mažosios raidės. Norėdami deklaruoti kintamuosius, naudokite lygybės ženklą (=) su pavadinimu kairėje ir verte dešinėje:
STATE=Vašingtonas
Reikšmė, kuriai priskiriama ši deklaracija VALSTYBĖ yra vienas žodis. Jei vertėje reikia tarpų, naudokite kabutes:
STATE="Šiaurės Arizona"
Turėsite naudoti dolerio ženklą ($) Kituose kintamuosiuose ar teiginiuose esančių nuorodos kintamųjų priešdėlis:
STATE=Vašingtonas
LOCATION="Mano vieta yra $STATE"
„Bash“ verčių spausdinimas
Bash kintamuosius galite spausdinti keliais būdais. Galite naudoti aidas komanda pagrindinei išvestiei arba C stiliui printf komanda eilutės formatavimui.
STATE=Vašingtonas
LOCATION="Mano vieta yra $STATE"
aidas$LOCATION
Paskelbus VALSTYBĖ kintamąjį, šis scenarijus apibrėžia VIETA nurodant STATE. If tada naudoja echo galutinę kintamojo LOCATION reikšmę išspausdinti.
The printf raktinis žodis leidžia naudoti formatavimo veiksmažodžius duomenims išvesti. Eilučių formatavimo veiksmažodžiai yra panašūs į C ir Go, bet su ribotais veiksmažodžiais.
Veiksmažodis | Funkcionalumas |
---|---|
%c | spausdina pavienius simbolius |
%o | spausdina oktadešimtaines |
%s | spausdina eilutes, nepriklausomai nuo korpuso |
%x | spausdina mažąsias šešioliktaines raides |
%X | spausdina didžiąsias šešioliktaines raides |
%d | spausdina sveikuosius skaičius |
%e | spausdina mokslinę sąvoką plūduriuoja mažosiomis raidėmis |
%E | spausdina mokslinę sąvoką plūduriuoja didžiosiomis raidėmis |
%f | spausdina slankiojo kablelio skaičius |
%% | spausdina vieno procento simbolį. |
Štai pavyzdys, kaip naudoti veiksmažodį su spausdinti raktažodį.
STATE=Lagosas
printf „Mano vieta yra %s“ $STATE
The printf funkcija pakeistų VALSTYBĖ kintamasis pozicijoje %s veiksmažodis, o išvestis būtų „Mano vieta yra Lagosas“.
Bash kalba galite komentuoti naudodami maišą arba svarą (#) simbolis. Apvalkalas automatiškai nepaiso komentarų.
#!/bin/bash
# STATE=Vašingtonas
# LOCATION="Mano vieta yra $STATE"
Kelių eilučių komentarų nėra. Dauguma IDE ir teksto rengyklės leidžia komentuoti naudojant spartųjį klavišą Ctrl/Command + pasvirasis brūkšnys (/). Turėtumėte turėti galimybę naudoti spartųjį klavišą, norėdami sukurti kelis vienos eilutės komentarus.
Vartotojo įvesties gavimas Bash
Kaip ir daugelis kitų programavimo kalbų, „Bash“ galite gauti vartotojo įvestį, kad jūsų programos / scenarijai būtų interaktyvesni. Galite naudoti skaityti komanda paprašyti vartotojo įvesties.
skaityti atsakymą
Šiuo atveju, atsakymą kintamasis išlaikys vartotojo įvestį pristatymo metu.
echo "Ko tu nori?:"
skaityti atsakymą
echo $atsakymas
Anksčiau pateiktame pavyzdyje vartotojo įvesties užklausa bus naujoje eilutėje.
Galite pridėti -n vėliava prie aidas spausdinti teiginį, kad išsaugotumėte eilutę, kurioje vartotojas įveda įvestį.
echo -n "Ko tu nori."
skaityti atsakymą
echo $atsakymas
Masyvų deklaravimas Bash
Masyvai Bash yra kaip ir dauguma kalbų. Masyvo kintamąjį galite deklaruoti Bash, nurodydami elementus skliausteliuose.
Šalys=('JAV' 'Rusija' 'Ukraina', "Anglija", "Taivanas", "Kinija")
Pasiekus masyvą per nuorodą į kintamojo pavadinimą, būtų gautas pirmasis elementas. Galite pasiekti visą masyvą naudodami žvaigždutės ženklą kaip rodyklę.
echo ${Countries[*]}
Taip pat galite nurodyti masyvo indeksą, kad pasiektumėte konkretų elementą. Masyvo indeksas prasideda nuo nulio.
aidas "${Countries[4]}"
Sąlyginiai pareiškimai Bash
„Bash“ programose pateikia sprendimų priėmimo sąlygas.
Štai „if-else“ teiginio Bash anatomija. Norėdami nurodyti sąlygos pabaigą, turėsite naudoti kabliataškį.
jeigu [[ sąlyga ]]; tada
aidas pareiškimas1
elifas [[būklė ]]; tada
aidas pareiškimas2
Kitas [[būklė ]]; tada
aidas pareiškimas3
fi
Jūs turite baigti kiekvieną jeigu pareiškimas su fi raktažodį.
jeigu [ 1 == 2 ]; tada
aidas vienas
elifas [ 2 == 3 ]; tada#kitaip-jei
aidas du
Kitas [ 4 > 3 ];
aidas "teisingai, 3"
fi
Savo „Bash“ programose galite naudoti atvejo teiginius naudodami atveju raktažodį. Prieš teiginį turėsite nurodyti šabloną, po kurio bus baigiami skliaustai.
CITY=Lagosas
atveju$CITYin
„Vašingtonas“) # modelis
aidas "Jungtinės Amerikos Valstijos" # pareiškimas
;; # bylos pabaiga
"Lagosas" | "Abudža")
aidas "Nigerija"
;;
"Johanesburgas" | „Keiptaunas“)
aidas "Pietų Afrika"
;;
*) # numatytasis modelis
aidas "Antarktida" # numatytasis teiginys
;;
esac# bylos pareiškimo pabaiga
Numatytąjį didžiųjų ir mažųjų raidžių skaičių galite apibrėžti naudodami žvaigždutės (*) ženklą kaip šabloną. Atvejo pareiškimai turi baigtis raide esac raktažodį.
Kilpos Bash
Priklausomai nuo jūsų poreikių, galite naudoti ciklą while, diapazoną for-ciklą arba C stilių ciklas pasikartojančioms operacijoms.
Štai C stiliaus for-loop pavyzdys. For-kilpos turi baigtis raide padaryta raktinį žodį, o už teiginį turite užbaigti kabliataškiu, po kurio eina daryti raktažodį.
dėl ((a = 0; a < 10; a+2)); daryti
aidas$a
padaryta
Ciklo diapazonas yra naudingas dirbant su failais ir atliekant daugybę kitų operacijų. Jums reikės naudoti in raktinis žodis su diapazonu for-loop.
dėl i in {1..7}; daryti
aidas$1
padaryta
Štai paprasta begalinė kilpa, skirta parodyti Bash kol kilpos veikia.
vardas = 1
kol [ 1 - le 5 ] #, o 1 < 5
daryti
aidas$vardas
padaryta
The -le sąlygos sakinyje yra dvejetainis operatorius, mažesnis nei.
Funkcijos Bash
Norint deklaruoti funkcijas Bash, jums nereikia raktinių žodžių. Galite deklaruoti funkcijas naudodami pavadinimą, o tada skliausteliuose prieš funkcijos turinį.
spausdinimo_darbo_katalogas() {
aidas$ PWD#iškviečiama PWD komanda iš scenarijaus
}
aidas "Tu esi in $(spausdinimo_darbo_katalogas)"
Funkcijos gali grąžinti Bash kintamuosius. Viskas, ko jums reikia, yra grąžinti raktažodį.
spausdinimo_darbo_katalogas() {
grąžinti$ PWD
}
The spausdinimo_darbo_katalogas funkcija grąžina failo darbinį katalogą.
Galite rašyti apvalkalo scenarijus kitomis kalbomis
Bash nėra vienintelė kalba, kuria galite bendrauti su operacinės sistemos apvalkalu arba kurti komandų eilutės programas. Galite naudoti daugybę kitų kalbų, pvz., Go, Python, Ruby ir Rust.
Daugelyje operacinių sistemų yra iš anksto įdiegtas Python3, o Python yra paplitusi kalba. Jei jums reikia dar daugiau funkcijų, nei gali pasiūlyti „Bash“ scenarijai, apsvarstykite galimybę naudoti „Python“.