Scripturile Bash sunt utile pentru automatizarea sarcinilor și veți descoperi că sunt grozave pentru a construi aplicații simple de linie de comandă. Shell-ul Bash interpretează scripturile Bash, așa că nu va trebui să instalați nicio dependență pentru a le scrie și a le rula. Scripturile Bash sunt, de asemenea, portabile, deoarece majoritatea sistemelor de operare bazate pe Unix folosesc același interpret shell.

Cunoașterea scripturilor Bash este o necesitate pentru fiecare dezvoltator, mai ales dacă lucrați cu sisteme bazate pe Unix.

Variabile în Bash

Variabilele Bash sunt sensibile la majuscule. Pentru a declara variabile, utilizați semnul egal (=) cu numele în stânga și valoarea în dreapta:

STATE=Washington

Valoarea căreia îi atribuie această declarație STAT este un singur cuvânt. Dacă aveți nevoie de spații în valoarea dvs., utilizați ghilimele în jurul acesteia:

STATE="North Arizona"

Va trebui să utilizați un semn de dolar ($) prefix la variabilele de referință în alte variabile sau instrucțiuni:

instagram viewer
STATE=Washington
LOCATION="Locația mea este $STAT"

Tipărirea valorilor în Bash

Există mai multe moduri prin care puteți imprima variabile în Bash. Puteți folosi ecou comandă pentru ieșirea de bază sau stilul C printf comandă pentru formatarea șirurilor.

STATE=Washington
LOCATION="Locația mea este $STAT"
ecou$LOCATION

După declararea STAT variabilă, definește acest script LOCAȚIE prin referire la STATE. Dacă atunci folosește echo pentru a imprima valoarea finală a variabilei LOCATION.

The printf cuvântul cheie vă permite să utilizați verbe de formatare pentru a obține date. Verbele cu formatare șir sunt similare cu cele din C și Go, dar cu verbe limitate.

Verb Funcționalitate
%c imprimă caractere individuale
%o imprimă octadecimale
%s imprimă șiruri, independent de carcasă
%X afișează litere mici hexazecimale
%X imprimă majuscule hexazecimale
%d imprimă numere întregi
%e imprimă noțiunea științifică plutește cu litere mici
%E imprimă noțiunea științifică plutește cu majuscule
%f imprimă numere în virgulă mobilă
%% imprimă un singur simbol procentual.

Iată un exemplu de utilizare a unui verb cu imprimare cuvânt cheie.

STATE=Lagos
printf „Locația mea este %s” $STAT

The printf funcția ar înlocui STAT variabilă în poziţia lui %s verb, iar rezultatul ar fi „Locația mea este Lagos”.

Puteți face comentarii în Bash cu hash sau pound (#) simbol. Shell-ul ignoră automat comentariile.

#!/bin/bash
# STATE=Washington
# LOCATION="Locația mea este $STATE"

Nu există comentarii pe mai multe rânduri. Majoritatea IDE-urilor și a editorilor de text vă permit să comentați cu ajutorul comenzii rapide Ctrl/Command + slash(/). Ar trebui să puteți utiliza comanda rapidă pentru a crea mai multe comentarii pe o singură linie.

Primirea intrărilor utilizatorului în Bash

La fel ca multe alte limbaje de programare, puteți primi informații de utilizator în Bash pentru a face programele/scripturile mai interactive. Puteți folosi citit comanda pentru a solicita intrarea utilizatorului.

citit raspuns

În acest caz, raspuns variabila va reține intrarea utilizatorului la livrare.

echo "Ce vrei?:"
citeste raspunsul
echo $răspuns

Solicitarea de introducere a utilizatorului va fi pe o nouă linie în exemplul de mai sus.

Puteți adăuga -n steag la ecou print declarație pentru a reține linia în care utilizatorul introduce intrarea.

echo -n "Ce vrei."
citeste raspunsul
echo $răspuns

Declararea matricelor în Bash

Matrice în Bash sunt la fel ca majoritatea limbilor. Puteți declara o variabilă matrice în Bash specificând elementele în paranteze.

Țări=(„SUA”, „Rusia”, „Ucraina”, „Anglia”, „Taiwan”, „China”)

Accesarea unui tablou prin referire la numele variabilei ar aduce primul element. Puteți accesa întreaga matrice utilizând semnul asterisc ca index.

echo ${Țări[*]}

De asemenea, puteți specifica indexul matricei pentru a accesa un anumit element. Indicele unui tablou începe de la zero.

ecou "${Țări[4]}"

Declarații condiționate în Bash

Bash oferă condiții pentru luarea deciziilor în programe.

Iată anatomia unei declarații if-else în Bash. Va trebui să utilizați punct și virgulă pentru a specifica sfârșitul condiției.

dacă [[ condiție ]]; apoi
ecou declarație 1
elif [[condiție ]]; apoi
ecou declarație 2
altfel [[condiție ]]; apoi
ecou afirmația 3
fi

Trebuie să închei fiecare dacă declarație cu fi cuvânt cheie.

dacă [ 1 == 2 ]; apoi
ecou unu
elif [ 2 == 3 ]; apoi#altfel-dacă
ecou Două
altfel [ 4 > 3 ];
ecou "corect, 3"
fi

Puteți utiliza instrucțiunile case în programele dvs. Bash folosind caz cuvânt cheie. Va trebui să specificați modelul urmat de paranteze de sfârșit înainte de instrucțiune.

CITY=Lagos
caz$CITYîn
"Washington") # model
ecou "Statele Unite ale Americii" # afirmație
;; # sfârşitul unui caz
„Lagos” | „Abuja”)
ecou "Nigeria"
;;
„Johannesburg” | „Cape Town”)
ecou "Africa de Sud"
;;
*) # model implicit
ecou "Antarctica" # declarație implicită
;;
esac# sfârşitul declaraţiei de caz

Puteți defini cazul implicit folosind semnul asterisc (*) ca model. Declarațiile de caz trebuie să se încheie cu esac cuvânt cheie.

Bucle în Bash

În funcție de nevoile dvs., puteți utiliza o buclă while, un interval for-loop sau un stil C bucla for pentru operațiuni recurente.

Iată un exemplu de buclă pentru stilul C. Buclele For trebuie să se încheie cu Terminat cuvântul cheie și trebuie să încheiați instrucțiunea for cu un punct și virgulă urmat de do cuvânt cheie.

pentru ((a = 0; a < 10; a+2)); do
ecou$a
Terminat

Gama pentru buclă este utilă pentru a lucra cu fișiere și multe alte operațiuni. Va trebui să utilizați în cuvânt cheie cu intervalul for-loop.

pentru i în {1..7}; do
ecou$1
Terminat

Iată o buclă infinită simplă pentru a demonstra Bash in timp ce bucle în acțiune.

nume=1
in timp ce [ 1 -le 5 ] # în timp ce 1 < 5
do
ecou$nume
Terminat

The -le în instrucțiunea de condiție este operatorul binar pentru mai puțin de.

Funcții în Bash

Nu aveți nevoie de cuvinte cheie pentru a declara funcții în Bash. Puteți declara funcții cu numele și apoi paranteze înaintea corpului funcției.

print_working_directory() {
ecou$PWD#apelarea comenzii PWD din script
}
ecou "Tu esti în $(print_working_directory)"

Funcțiile pot returna variabile în Bash. Tot ce ai nevoie este întoarcere cuvânt cheie.

print_working_directory() {
întoarcere$PWD
}

The print_working_directory funcția returnează directorul de lucru al fișierului.

Puteți scrie scripturi Shell în alte limbi

Bash nu este singura limbă pe care o poți folosi pentru a interacționa cu shell-ul sistemului de operare sau pentru a construi aplicații de linie de comandă. Puteți folosi multe alte limbi precum Go, Python, Ruby și Rust.

Multe sisteme de operare au Python3 preinstalat, iar Python este un limbaj predominant. Dacă aveți nevoie de și mai multe funcționalități decât pot oferi scripturile Bash, luați în considerare utilizarea Python.