Advanced Shell Scripting Tutorial | Delete More Than X Days Directories | Tech ArkIT
Cuprins:
- Arhive Bash
- Crearea de Arhiere Bash
- Crearea tablourilor indexate numeric
- Crearea tablourilor asociative
- Operații de Array
- Elemente de referință
- Lungime Array
- Buclați-vă prin tabel
- Adăugați un element nou
- Ștergeți un element
- Concluzie
Array-urile sunt una dintre cele mai utilizate și fundamentale structuri de date. Vă puteți gândi că o matrice este o variabilă care poate stoca mai multe variabile în cadrul acesteia., vom acoperi matricile Bash și vă vom explica cum să le utilizați în scripturile dvs. Bash.
Arhive Bash
Bash acceptă tipuri de matrice unice și indexate numeric. Matricile numerice sunt referite folosind numere întregi, iar asociativ este trimis folosind șiruri.
Matricele indexate numeric pot fi accesate de la capăt folosind indici negativi, indexul
-1
face referire la ultimul element. Indicii nu trebuie să fie contiguiți.
Spre deosebire de majoritatea limbajelor de programare, elementele tabloului Bash nu trebuie să fie de același tip de date. Puteți crea un tablou care conține atât șiruri, cât și numere.
Bash nu acceptă tablouri multidimensionale și nu puteți avea elemente de matrice care sunt și tablouri.
Nu există nicio limită la numărul maxim de elemente care pot fi stocate într-un tablou.
Crearea de Arhiere Bash
Schițele în Bash pot fi inițializate în moduri diferite.
Crearea tablourilor indexate numeric
Variabilele Bash nu sunt testate, orice variabilă poate fi utilizată ca un tablou indexat fără a o declara.
Pentru a declara în mod explicit un tablou, utilizați declarația încorporată:
declare -a array_name
O modalitate de a crea un tablou indexat este folosirea formularului următor:
array_name=value_1 array_name=value_2 array_name=value_n
Unde
index_*
este un număr întreg pozitiv.
Un alt mod de a crea un tablou numeric este de a specifica lista elementelor din paranteze, separate prin spațiu gol:
array_name=(element_1 element_2 element_N)
Când tabloul este creat folosind formularul de mai sus, indexarea începe de la zero adică primul element are un indice de
0
.
Crearea tablourilor asociative
Spre deosebire de indexate numeric, matricile asociative trebuie declarate înainte de a putea fi utilizate.
Pentru a declara un tablou asociativ, utilizați
declare
încorporată cu opțiunea
-A
(cu majuscule):
declare -A array_name
Matricele asociative pot fi create folosind următorul formular:
declare -A array_name array_name=value_foo array_name=value_bar array_name=value_xyz
Unde
index_*
poate fi orice șir.
De asemenea, puteți crea un tablou asociativ folosind formularul de mai jos:
declare -A array_name array_name=(=value_foo =value_bar =value_xyz)
Operații de Array
Sintaxa matricelor Bash poate părea un pic ciudată la început, dar va avea mai mult sens odată ce citiți acest articol.
Elemente de referință
Pentru a face referire la un singur element, trebuie să cunoașteți indexul elementului.
Orice element poate fi referit folosind următoarea sintaxă:
${array_name}
Sintaxa pentru accesarea unui element de matrice este similară cu sintaxa majorității limbajelor de programare. Bretele ondulate
${}
sunt necesare pentru a evita operatorii de expansiune a numelui de fișier shell.
Să tipărim elementul cu un indice de
1
:
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print element echo ${my_array}
Helium
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium
Singura diferență între
@
și
*
este atunci când formularul
${my_array}
este înconjurat de ghilimele duble. În acest caz,
*
se extinde la un singur cuvânt unde elementele de matrice sunt separate cu spațiu.
@
extinde fiecare element de matrice la un cuvânt separat. Acest lucru este deosebit de important atunci când se utilizează formularul pentru analfabetizarea prin elemente de matrice.
Pentru a tipări cheile tabloului adăugați
!
operator înainte de numele tabloului:
${!array_name}
Iată un exemplu:
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## print all elements echo "${!my_array}"
Lungime Array
Pentru a obține lungimea unui tablou, utilizați următorul formular:
${#array_name}
Sintaxa este aceeași ca atunci când se face referire la toate elementele cu adăugarea caracterului
#
înainte de numele tabloului.
## declare the array declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## array Length echo ${#my_array}
Buclați-vă prin tabel
Cel mai obișnuit mod de a itera peste fiecare element dintr-un tablou este folosind bucla for:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${my_array}" do echo "$i" done
Codul de mai sus va itera peste tabel și va tipări fiecare element într-o nouă linie:
Hydrogen Helium Lithium Beryllium
Iată un exemplu de imprimare a tuturor tastelor și valorilor:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## Array Loop for i in "${!my_array}" do echo "$i" "${my_array}" done
0 Hydrogen 1 Helium 2 Lithium 3 Beryllium
Un alt mod de a face buclă printr-un tablou este de a obține lungimea tabloului și de a folosi bucla de
C style
:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") # Length of the array length=${#my_array} # Array Loop for ((i=0; i < ${length}; i++)) do echo $i ${my_array} done
0 Hydrogen 1 Helium 2 Lithium 3 Beryllium
Adăugați un element nou
Pentru a adăuga un element nou într-un tablou bash și specificați indexul acestuia, utilizați următorul formular:
my_array="New Element"
Iată un exemplu:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new element my_array="Aluminum" ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium Aluminum
Un alt mod de a adăuga un element nou la un tablou fără a specifica indexul este folosind operatorul
+=
. Puteți adăuga unul sau mai multe elemente:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## add new elements my_array+=(Cobalt Nickel) ## print all elements echo "${my_array}"
Hydrogen Helium Lithium Beryllium Cobalt Nickel
Ștergeți un element
Pentru a șterge un singur element, va trebui să știți indexul elementului. Un element poate fi eliminat folosind comanda
unset
:
unset my_array
Să vedem un exemplu:
declare -a my_array=("Hydrogen" "Helium" "Lithium" "Beryllium") ## remove element unset my_array ## print all elements echo "${my_array}"
Concluzie
Am explicat cum se creează tablouri indexate numeric și asociative. Am arătat, de asemenea, modul de iterare prin tablouri, cum se calculează lungimea tabloului și se adaugă și se elimină elemente.
terminalul bashMotorola Droid Laid Bare, dezvăluie totul în Teardown
Motorola Droid devine goală, grație unei ameliorări post-lansare a Phonewreck. > Droidul Motorola a făcut obiectul multor discuții în ultima vreme, alimentat în parte de o serie de anunțuri TV controversate.
Cum se utilizează adobe comp cc pentru ipad pentru a crea schițe de proiectare
Aflați elementele de bază ale Adobe Comp CC pentru iPad și cum puteți crea planuri uimitoare pentru proiectele dvs. grafice folosind doar degetele.
Top 13 sfaturi și trucuri utile pentru snip & schițe
Profitați la maxim de noul instrument de captură de ecran, de exemplu, Snip și Sketch pe Windows folosind aceste sfaturi și trucuri.







