Scrierea script în bash, losst

Nu contează cât de simplu a fost interfața grafică cu utilizatorul pentru Linux, și cât de mult mai bine sau mai rău caracteristici, există încă o problemă, care este mai convenabil de a rezolva prin intermediul terminalului. În primul rând, pentru că este mai rapid, iar pe de altă parte - nu toate mașinile au o interfață grafică, cum ar fi servere, toate acțiunile sunt efectuate prin intermediul terminalului, în scopul de a economisi resurse de calcul.







Elementele de bază de scripting

Script-ul, sau cum este numit - script-ul este o secvență de comenzi, care, la rândul său, citește și execută interpretul de program, în acest caz, un program de linie de comandă - bash.

Script - este un fișier text simplu care listează comenzile comune pe care le-am folosit pentru a fi introduse manual, precum și program de orientare care le va îndeplini. Încărcătorul, care se va executa script-ul nu poate lucra cu variabile de mediu, de aceea este necesar să se transfere calea exactă la programul pe care doriți să rulați. Și apoi a fost da scenariul la acest program și pentru a începe punerea în aplicare.

Cel mai simplu exemplu de un script pentru shell Bash:

#! / Bin / bash
echo "Hello World"

Cum se scrie un script

utilitate ecou afișează șirul dat în parametrul de pe ecran. Prima linie este specială, ea stabilește un program care va executa comenzi. În general vorbind, putem crea un script pe orice alt limbaj de programare, și să specificați interpretul dorit, de exemplu, în Python:

#! / Usr / bin / env python
print ( "Hello World")

#! / Usr / bin / env php
echo „lume Bună ziua“;

Acest steag nu schimbă nimic în fișierul în sine, spune doar sistemul pe care acest lucru nu este pur și simplu un fișier text, iar programul și necesitatea de a efectua, deschide fișierul, găsiți interpretul și să execute. În cazul în care interpretul nu este specificat, se va implicit la shell utilizator. Dar din moment ce nu toată lumea folosește bash, trebuie să-l descrie în mod explicit.

Ugo $ chmod + x fayl_skripta

Acum, vom face mai întâi programul nostru mic:

Cum se scrie un script

Totul funcționează. Știi deja cum să scrie un script mic, de exemplu, pentru a actualiza. După cum puteți vedea, script-urile contin aceleasi comenzi care sunt executate în terminal, ei scriu foarte simplu. Dar acum avem un pic complicat sarcina. Deoarece script-ul este un program care are nevoie să ia unele decizii, stoca rezultatele comenzilor și executa cicluri. Toate acestea ne permite să facem shell Bash. Adevărat, este mult mai complicat. Să începem cu un simplu.

Variabile în script-uri

Scrierea script-uri în Bash rareori fără a salva date temporare, și, astfel, a crea variabile. Fără variabile nu pot face nici un limbaj de programare și limbajul nostru coajă primitiv, de asemenea.

Este posibil să fi deja întâlnit anterior cu variabile de mediu. Deci, acestea sunt aceleași variabile, și funcționează foarte bine.

De exemplu, să declare un șir variabil:

Înțeles șirurile noastre citate. Dar, de fapt, citatele nu sunt întotdeauna necesare. Rămâne principiul principal al bash - spațiu - este un caracter special, un separator, astfel încât, dacă nu utilizați ghilimele Mondiale vor fi luate în considerare deja o comandă separată pentru același motiv pentru care nu pune un spațiu înainte și după semnul egal.

Pentru a afișa valoarea simbolului $ este utilizat. De exemplu:

Noi modifica script-ul nostru:

Bash-ul nu face distincție între tipurile de variabile ca un limbaj de nivel înalt, cum ar fi C ++, aveți posibilitatea să atribuiți o variabilă ca număr și șirul. Tot la fel va fi considerată ca un șir de caractere. Shell-ul acceptă numai fuzionarea liniilor, acest lucru pur și simplu scrie în jos numele variabilelor într-un rând:

#! / Bin / bash
string1 = "hello"
string2 = mondială
string = $ șir1 $ string2 \ i \ mi
String3 = $ șir1 $ string2 "și mine"
$ String3 echo

Cum se scrie un script

Vă rugăm să rețineți că după cum am spus, citatele sunt opționale în cazul în care linia nu are caractere speciale. Priviți cu atenție la cele două linii de îmbinare metode sunt demonstrate, de asemenea, rolul de citate. Dacă aveți nevoie de metode mai sofisticate de linii de prelucrare sau de operații aritmetice, aceasta nu este inclusă în coajă în care este posibil în acest scop, utilități convenționale.

Variabile și comenzi de ieșire

Variabilele nu ar fi atât de util dacă ar fi să scrie rezultatul utilităților nu poate fi în ele. Pentru a face acest lucru, utilizați următoarea sintaxă:







Cu această construcție, ieșirea echipa este redirecționat înapoi la care a fost numit, nu pe ecran. De exemplu, data de utilitate returnează data curentă. Aceste comenzi sunt echivalente:

Cum se scrie un script

string1 = "Hello World"
string2 = $ (data)

Cum se scrie un script

Acum, că știi suficient despre variabilele, si sunt gata pentru a crea un script bash, dar asta nu e tot. În continuare, considerăm că parametrii și structurile de control. Permiteți-mi să vă reamintesc că este tot de obicei comenzile bash, și nu trebuie să le salvați într-un fișier poate fi realizată imediat în mișcare.

Parametrii script-ul

Nu este întotdeauna posibil să se creeze un script bash care nu depinde de date introduse de utilizator. În cele mai multe cazuri, aveți nevoie pentru a cere utilizatorului ce măsuri să ia, sau care fișiere de utilizat. putem trece parametrii să-l atunci când apelați script-ul. Toți acești parametri sunt disponibile ca variabile cu nume în formă de numere.

Variabila numita 1 conține valoarea primului parametru, variabilă, 2-a doua și așa mai departe. Acest script bash va afișa primul parametru:

Cum se scrie un script

Cum se scrie un script

Structuri de control în Scripturi

Crearea nu ar fi script bash atât de util, fără capacitatea de a analiza anumiți factori și pentru a efectua, ca răspuns la care acțiunile dorite. Acest lucru este destul de un subiect atât de complex, dar este foarte important pentru a crea un script bash.

În Bash are o echipa de sintaxa ei este de a testa condiții:

Această comandă verifică codul condiție pentru comanda pentru a finaliza, și dacă 0 (succes), care execută o comandă sau mai multe comenzi, după cuvântul, apoi, în cazul în care codul de ieșire 1 se face bloc altceva, înseamnă fi finalizarea comenzilor unitare.

Dar, din moment ce de multe ori nu suntem echipe interesate de cod și siruri de caractere și compararea numerelor a reveni, echipa a fost introdus [[, care vă permite să efectuați o varietate de comparații și să ofere un cod de întoarcere în funcție de rezultatul comparației. Sintaxa este:

[[Operatorul parametru2 Parametru1]]

Pentru comparație am folosit declarațiile deja familiare <,>,=, =, Etc. Dacă expresia este adevărată, se întoarce comanda 0 dacă nu -. 1. O puteți un mic comportament Terminal de testare. ultimul cod de retur de comandă este stocat în variabila $?:

Cum se scrie un script

Acum, care combină toate acestea și să obțină script-ul cu o expresie condițională:

#! / Bin / bash
dacă [[$ 1> 2]]
atunci
echo $ 1 "este mai mare de 2"
altfel
echo $ 1 „este mai mică de 2 sau 2 '
Fi

Cum se scrie un script

Cum se scrie un script

Desigur, acest design caracteristici mai puternice, dar este prea dificil să le ia în considerare în acest articol. Poate voi scrie despre asta mai târziu. Si acum sa cicluri.

Cicluri în script-uri

Avantajul programelor pe care le putem în câteva rânduri pentru a preciza acțiunile pe care trebuie să efectuați de mai multe ori. De exemplu, este posibil pentru a scrie script-uri în bash, care constau doar câteva linii, și a alerga ore, analizarea parametrilor și efectuarea acțiunii dorite.

În primul rând se uite la ciclul de. Iată sintaxa:

Se trece prin întreaga listă, și atribuie valoarea variabilei la un moment dat din listă, după fiecare misiune execută comenzile situate între Do și făcut.

De exemplu, să se uite peste cinci numere:

pentru indicele de la 2 ianuarie 3 4 5
face
indicele $ echo
făcut

Cum se scrie un script

Cum se scrie un script

Sau puteți lista toate fișierele din directorul curent:

$ Pentru fișier în $ (ls-l); do echo "fișier $"; făcut

Cum se scrie un script

După cum vă puteți imagina, nu afișa numai numele, dar, de asemenea, să efectueze acțiunile necesare, este foarte util atunci când creați un script bash.

Al doilea ciclu, pe care ne vom uita la - este o buclă în timp ce, până când se execută comanda condiții returnează un cod de la 0, un succes. Luați în considerare următoarea sintaxă:

#! / Bin / bash
index = 1
în timp ce [[indicele $ <5 ]]
face
indicele $ echo
lasa "index = index + 1"
făcut

Cum se scrie un script

Cum se scrie un script

După cum puteți vedea, totul se face, lăsați echipa pur și simplu execută operațiile matematice specificate, în acest caz, crește valoarea unei variabile de unul.

Aș dori să menționez altceva. Astfel de modele ca in timp ce, pentru, dacă se calculează pe înregistrarea câteva linii, iar dacă încercați să le înregistreze pe o singură linie, veți primi o eroare. Cu toate acestea, este posibil să se facă acolo, unde trebuie să existe un punct de pauză linie încearcă o comă „;“. De exemplu, ciclul precedent ar putea fi realizată ca o singură linie:

index = 1; în timp ce [[indicele $ <5 ]]; do echo $index; let "index=index+1"; done;

Este foarte simplu, am încercat să nu complice povestea termeni și oportunități suplimentare bash, doar cele mai de bază. În unele cazuri, poate fi necesar pentru a face o interfață grafică pentru un script bash. atunci puteți utiliza programe cum ar fi zenity sau kdialog, folosindu-le foarte convenabil pentru a afișa mesaje pentru utilizator, și chiar să ceară informații sale.

Acum, că ați înțeles elementele de bază de a crea un script în Linux și puteți scrie scenariul dorit, de exemplu, pentru backup. Am încercat să ia în considerare scripturi bash de la zero. Prin urmare, nu au fost luate în considerare toate aspectele. Poate vom reveni la acest subiect într-un articol viitor.