Bash skripte su korisne za automatizaciju zadataka, a vidjet ćete da su izvrsne za izradu jednostavnih aplikacija naredbenog retka. Bash ljuska tumači Bash skripte, tako da nećete morati instalirati nikakve ovisnosti da biste ih napisali i pokrenuli. Bash skripte su također prenosive budući da većina operativnih sustava temeljenih na Unixu koristi isti tumač ljuske.

Poznavanje Bash skriptiranja je neophodno za svakog programera, posebno ako radite sa sustavima baziranim na Unixu.

Varijable u Bashu

Bash varijable razlikuju velika i mala slova. Za deklaraciju varijabli koristite znak jednakosti (=) s imenom s lijeve strane i vrijednošću s desne strane:

STATE=Washington

Vrijednost koju ova deklaracija dodjeljuje DRŽAVA je jedna riječ. Ako trebate razmake u svojoj vrijednosti, upotrijebite navodnike oko njih:

STATE="Sjeverna Arizona"

Morat ćete upotrijebiti znak dolara ($) prefiks za referentne varijable u drugim varijablama ili izjavama:

STATE=Washington
LOCATION="Moja lokacija je $STATE"

Ispis vrijednosti u Bashu

instagram viewer

Postoji nekoliko načina na koje možete ispisati varijable u Bashu. Možete koristiti jeka naredba za osnovni izlaz ili C-stil printf naredba za oblikovanje niza.

STATE=Washington
LOCATION="Moja lokacija je $STATE"
jeka$LOCATION

Nakon proglašenja DRŽAVA varijablu, definira ova skripta MJESTO pozivanjem na STATE. If tada koristi echo za ispis konačne vrijednosti varijable LOCATION.

The printf ključna riječ omogućuje vam korištenje glagola oblikovanja za ispis podataka. Glagoli za oblikovanje niza slični su onima u C i Go, ali s ograničenim glagolima.

Glagol Funkcionalnost
%c ispisuje pojedinačne znakove
%o ispisuje Octadecimale
%s ispisuje nizove, neovisno o kućištu
%x ispisuje mala heksadecimalna slova
%X ispisuje velika slova heksadecimalno
%d ispisuje cijele brojeve
%e ispisuje znanstveni pojam lebdi malim slovima
%E ispisuje znanstveni pojam lebdi velikim slovima
%f ispisuje brojeve s pomičnim zarezom
%% ispisuje simbol jednog postotka.

Evo primjera upotrebe glagola s ispisati ključna riječ.

DRŽAVA=Lagos
printf "Moja lokacija je %s" $STATE

The printf funkcija bi zamijenila DRŽAVA varijabla u položaju %s glagol, a izlaz bi bio "Moja lokacija je Lagos".

Možete komentirati u Bashu s hashom ili funtom (#) simbol. Ljuska automatski zanemaruje komentare.

#!/bin/bash
# STATE=Washington
# LOCATION="Moja lokacija je $STATE"

Nema višerednih komentara. Većina IDE-a i uređivača teksta omogućuje vam komentiranje pomoću prečaca Ctrl/Command + kosa crta (/). Trebali biste moći koristiti prečac za stvaranje više komentara u jednom retku.

Primanje korisničkog unosa u Bash

Kao i mnogi drugi programski jezici, u Bashu možete primiti korisnički unos kako biste svoje programe/skripte učinili interaktivnijima. Možete koristiti čitati naredba za traženje korisničkog unosa.

čitati odgovor

U ovom slučaju, odgovor varijabla će zadržati korisnikov unos prilikom isporuke.

echo "Što želiš?:"
pročitati odgovor
echo $odgovor

Zahtjev za korisnički unos bit će u novom retku u gornjem primjeru.

Možete dodati -n zastava na jeka naredbu za ispis da zadrži redak u koji korisnik unosi unos.

echo -n "Što želiš."
pročitati odgovor
echo $odgovor

Deklariranje nizova u Bashu

Nizovi u Bashu su kao i većina jezika. Možete deklarirati varijablu niza u Bashu navođenjem elemenata u zagradama.

Zemlje=('SAD' 'Rusija' 'Ukrajina', "Engleska", "Tajvan", "Kina")

Pristup nizu putem reference na naziv varijable bi dohvatio prvi element. Cijelom nizu možete pristupiti korištenjem znaka zvjezdice kao indeksa.

echo ${Countries[*]}

Također možete navesti indeks niza za pristup određenom elementu. Indeks niza počinje od nule.

jeka "${zemlje[4]}"

Uvjetne naredbe u Bashu

Bash pruža uvjete za donošenje odluka u programima.

Evo anatomije if-else naredbe u Bashu. Za navođenje kraja uvjeta morat ćete upotrijebiti točku-zarez.

ako [[ stanje ]]; zatim
jeka izjava1
elif [[stanje ]]; zatim
jeka izjava2
drugo [[stanje ]]; zatim
jeka izjava3
fi

Morate završiti svaki ako izjava s fi ključna riječ.

ako [ 1 == 2 ]; zatim
jeka jedan
elif [ 2 == 3 ]; zatim#drugo-ako
jeka dva
drugo [ 4 > 3 ];
jeka "točno, 3"
fi

Možete koristiti naredbe case u svojim Bash programima koristeći slučaj ključna riječ. Prije izjave morat ćete navesti uzorak iza kojeg slijede završne zagrade.

GRAD=Lagos
slučaj$CITYu
"Washington") # uzorak
jeka "Sjedinjene Američke Države" # izjava
;; # kraj slučaja
"Lagos" | "Abuja")
jeka "Nigerija"
;;
"Johannesburg" | "Cape Town")
jeka "Južna Afrika"
;;
*) # zadani uzorak
jeka "Antarktik" # zadana izjava
;;
esac# kraj iskaza slučaja

Možete definirati zadanu veličinu koristeći znak zvjezdice (*) kao obrazac. Prikazi slučajeva moraju završavati s esac ključna riječ.

Petlje u Bashu

Ovisno o vašim potrebama, možete koristiti while petlju, raspon za petlju ili C-stil for petlja za ponavljajuće operacije.

Evo primjera for-petlje u stilu C. For-petlje moraju završavati s učinjeno ključnu riječ, a naredbu for morate završiti točkom i zarezom iza koje slijedi čini ključna riječ.

za ((a = 0; a < 10; a+2)); čini
jeka$a
učinjeno

Raspon for petlje je koristan za rad s datotekama i mnoge druge operacije. Morat ćete upotrijebiti u ključna riječ s rasponom for-petlja.

za i u {1..7}; čini
jeka$1
učinjeno

Evo jednostavne beskonačne petlje za demonstraciju Basha dok petlje u akciji.

ime=1
dok [ 1 - le 5 ] # dok je 1 < 5
čini
jeka$ime
učinjeno

The -le u izjavi uvjeta je binarni operator za manje od.

Funkcije u Bashu

Ne trebate ključne riječi za deklariranje funkcija u Bashu. Funkcije možete deklarirati s imenom i zatim zagradama prije tijela funkcije.

ispis_radnog_imenika() {
jeka$OSO#pozivanje naredbe PWD iz skripte
}
jeka "Ti si u $(print_working_directory)"

Funkcije mogu vratiti varijable u Bashu. Sve što trebate je povratak ključna riječ.

ispis_radnog_imenika() {
povratak$OSO
}

The ispis_radnog_imenika funkcija vraća radni direktorij datoteke.

Možete pisati Shell skripte na drugim jezicima

Bash nije jedini jezik koji možete koristiti za interakciju s ljuskom vašeg operativnog sustava ili izradu aplikacija naredbenog retka. Možete koristiti mnoge druge jezike kao što su Go, Python, Ruby i Rust.

Mnogi operativni sustavi imaju unaprijed instaliran Python3, a Python je prevladavajući jezik. Ako trebate još više funkcionalnosti nego što mogu ponuditi Bash skripte, razmislite o korištenju Pythona.