|
Deși îl folosim în general pentru operațiuni administrative sau de gestionare a fișierelor, Console de Linux își extinde funcționalitatea cu mult dincolo de acest scop, permițându-ne să programăm script-uri Acest ghid nu este destinat să fie o referință completă la programarea Bash, ci mai degrabă o introducere la comenzile și structurile de bază, care ne vor permite să extindem puterea sistemului nostru GNU / Linux. |
Ce este un „Script”?
Practic spunem că este un fișier care conține cod scris într-un anumit limbaj de programare pe care sistemul îl folosește pentru o anumită sarcină. Nu trebuie să aibă o intrare externă sau o interfață grafică, dar trebuie să provoace o ieșire a datelor procesate (chiar dacă utilizatorul nu le vede).
Limbajul folosit de Bash este definit de propriul interpret și combină sintaxa altor Shells, cum ar fi Shell Korn (ksh) sau Shell C (csh). Multe dintre comenzile care sunt utilizate de obicei în consolă pot fi folosite și în scripturi, cu excepția celor care se referă strict la o anumită distribuție.
Structura unui script
Pentru început, trebuie să avem un editor de text și dorința de a programa. Fișierele pe care le salvăm cu o extensie .sh pot fi executate (sau interpretate) de consolă, atâta timp cât prima linie este următoarea:
#! / Bin / bash
Aceasta îi spune sistemului să utilizeze consola pentru a rula fișierul. În plus, caracterul # vă permite să scrieți comentarii. Pentru a crea cel mai simplu exemplu adăugăm încă o linie, văzută în următoarea imagine:
Comanda echo afișează un mesaj pe ecran, în acest caz tipicul „Hello world!” Dacă îl salvăm și îl executăm cu consola vom vedea rezultatul.
Comenzi de bază
Următoarele comenzi sunt comune și foarte utile pentru orice tip de program. Clarificăm că mai sunt multe, dar pentru moment vom acoperi următoarele.
Aliasuri: permite înlocuirea unui șir de cuvinte cu unul mai scurt, permițând reducerea codului.
#create un alias apelat per cu adresa folderului #Downloads alias per = '/ home / user / Downloads' # De fiecare dată când dorim să-l folosim trebuie doar să apelăm # noul cuvânt per #
pauză: vă permite să ieșiți imediat dintr-o buclă pentru, în timp ce, până sau selectați (vom studia buclele în detaliu mai târziu)
#Creați o buclă care va atribui numerele de la 1 la 5 # pentru fiecare „rotație a buclei” pentru contor în 1 2 3 4 5 faceți #Imprimăm valoarea curentă a variabilei #counter, care este analizată de caracterul $ echo " $ contor ”# Dacă valoarea contorului este egală cu 3 dacă [$ contor –eq 3] atunci # Pauza iese din buclă pentru pauza fi realizată
continuare - Similar cu pauza, cu excepția faptului că ignoră bucla curentă și merge la următoarea.
#Creați o buclă care va atribui numerele de la 1 la 5 # pentru fiecare „rotație a buclei” pentru contor în 1 2 3 4 5 faceți #Dacă valoarea contorului este egală cu 3 dacă [$ contor –eq 3] atunci #Continue împiedică analizarea restului ciclului #curentului sărind la următoarea rundă, adică # valoarea 3 nu va fi tipărită. continuați fi echo "$ counter" făcut
declare: declară variabile și le atribuie valori, la fel ca tipul de set (funcționează în același mod). Îl putem combina cu câteva opțiuni: -i declară numere întregi; -r pentru variabilele numai în citire, a căror valoare nu poate fi modificată; –A pentru tablouri sau „tablouri”; -f pentru functii; -x pentru variabilele care pot fi „exportate” în afara mediului scriptului în sine.
declara –i num = 12 declara –x pi = 3.14
ajutor: arată ajutorul pentru o comandă specifică.
joburi: arată procesele care rulează.
#Cu –c afișăm numele comenzilor, cu –p # pid (ID proces) al fiecărui proces. locuri de muncă -cp
lasă: evaluează o expresie aritmetică
let a = 11 let a = a + 5 #În cele din urmă imprimăm valoarea lui a care este 16 ecou "11 + 5 = $ a"
local: creează variabile locale, care ar trebui utilizate de preferință în funcțiile scriptului în sine pentru a evita erorile. Puteți utiliza aceleași funcții ca și comanda declare.
local v1 = "Aceasta este o variabilă locală"
deconectare: permite deconectarea completă dintr-un Shell; Util pentru cazurile în care lucrăm cu mai multe ferestre Shell, în care comanda de ieșire va permite să se încheie o singură fereastră la un moment dat.
printf: vă permite să imprimați date și să le formatați. Are multe opțiuni, așa că vom menționa câteva.
. Dolari.
citiți: citiți o linie din intrarea standard (modul utilizat pentru încărcarea datelor prin tastatură, de exemplu). Putem trece opțiuni precum: -t pentru a da un timp limită de citire; -a astfel încât fiecare cuvânt să fie atribuit unei poziții din matricea aname; -d pentru a utiliza un delimitator care va fi scris la sfârșitul liniei; printre alții.
echo "Introduceți numele dvs. și apăsați ENTER" #Citiți numele variabilei citiți numele echo "Numele dvs. este $ name"
tip: descrie o comandă și comportamentul acesteia. Poate fi util să aflați definițiile datelor pentru fiecare comandă.
tip –a '[' #type ne spune că [este o comandă Shell builtin [este un Shell builtin # -a vă permite să găsiți directoarele care conțin # un executabil cu numele scris. [este / usr / bin / [
ulimit: limitează accesul și utilizarea anumitor resurse de sistem la procese, ideal pentru programele care permit modificări administrative sau care vizează diferite tipuri de utilizatori. Când stabilim o limită, scriem un număr care reprezintă kilobyții limitei.
# Vedem limitele noastre actuale ulimit –a # -f permite limitarea utilizatorilor să nu poată crea # fișiere mai mari de 512000 Kb (500 #Mb) ulimit –f 512000 # -v limitează memoria virtuală a procesului. ulimit –v 512000
așteptați: așteptați să se desfășoare un anumit proces sau un anumit job.
# Scriptul așteaptă ca procesul pid # 2585 să fie efectuat
așteptați 2585
Alte comenzi utile pe care le putem adăuga scripturilor sunt reprezentate prin simboluri.
!!: executați din nou ultima comandă
! wer: execută ultima comandă care a început cu expresia „wer”.
'==', '! =', '>', '<', '> =' și '<=': operatori relaționali.
|: Operatorul SAU obișnuia să unească două expresii regulate.
: comanda escape care vă permite să formatați expresii. De exemplu: a pentru o alertă sonoră, n pentru linie nouă, b pentru backspace etc.
