Lucrări de laborator 5
Oricare dintre cochilii standard de sistem de operare din familia UNIX / Linux vă permite să creați fișiere batch (numite și script-uri din scriptul englez). Trebuie avut în vedere că acestea sunt executate ca și cum comenzile scrise în ea sunt introduse secvențial de la tastatură. Acest mod este numit interpretare. Este dificil să ne așteptăm la o muncă eficientă. Dar programele scrise într-o astfel de limbă, având în vedere varietatea mijloacelor pe care le susțin, pot fi destul de complexe.
Scenariile sunt folosite pentru a executa automat un set de comenzi. Acest lucru este convenabil dacă astfel de comenzi sunt executate continuu. Această situație poate fi asociată cu diferite evenimente ale sistemului, de exemplu:
- încărcarea sistemului de operare;
- înregistrarea în sistem a utilizatorului următor;
- lansarea unui pachet software care oferă funcții de sistem (denumite uneori "servicii").
Așa cum am menționat deja, dacă vrem să executăm scriptul, acesta trebuie să aibă dreptul de a executa (parametrul x), care este adăugat proprietarului fișierului pentru proprietarul fișierului
chmod u + x <имя файла>
Dar puteți rula un fișier text cu comenzi care nu au drepturi de execuție. Puteți folosi simbolul "." (Dot) -sm. lucrare de laborator 2, punctul 2.3.
Cochilii de comandă (interpret de comandă) ai familiei UNIX / Linux au un limbaj de programare dezvoltat, care este puternic orientat spre automatizarea sarcinilor de administrare a sistemului de operare. În fișierul script, pe lângă comenzile (numele fișierului executabil cu parametrii), operatorii pot fi izolați. În cele din urmă, desigur, utilizați variabilele.
În cadrul acestei lucrări de laborator, nu vor fi afectate toate caracteristicile limbajului de scripting al shell-ului UNIX / Linux (crearea unei funcții și utilizarea matricelor nu vor fi afectate).
Să începem descrierea limbajului script-ului de shell UNIX cu variabile. Se pot distinge mai multe tipuri. Unul dintre ei a fost considerat anterior. Acestea sunt variabilele de mediu. Exemplele sunt HOME și TERM.
Al doilea tip de variabile este creat de dezvoltatorul scenariului. Ele sunt deseori numite personalizate (sau variabile definite de utilizator). Puteți specifica valorile acestora prin alocare directă sau prin comanda de citire. În plus față de acest tip de variabile, precum și de variabilele de mediu discutate anterior, limbajul de scripting are propriile variabile încorporate și variabile predefinite sau speciale.
Iată două modalități de atribuire a valorii variabilelor utilizatorilor:
1. Alocarea directă pentru variabilele de tip de caractere.
2. Alocarea directă pentru valori numerice variabile.
Acum ne îndreptăm spre descrierea variabilelor încorporate. Numele lor, de regulă, constă în două simboluri. Primul dintre acestea este "$". De exemplu, această variabilă $ 0 conține numele fișierului de script. Dacă scripturile cu numele scr1 conțin linii, printre care există a
echo "Rularea" $ 0
atunci rezultatul execuției sale va fi
Astfel de variabile speciale $ 1. $ 2. conține parametri pentru a apela scriptul. Dacă există mai mult de 9 astfel de parametri, atunci vom folosi
atunci acești operatori
va duce la următorul rezultat
vor fi afișate numai
Alte variabile de script încorporate sunt:
$ # este numărul de parametri de script.
$? - codul ultimului proces de returnare.
$ * și $ @ - valorile tuturor parametrilor transmiși scriptului.
Iată un exemplu de utilizare a variabilelor built-in shell. În ea și în continuare ultimele două linii joacă un astfel de rol. Primul, după afișarea rezultatelor scriptului, afișează un mesaj de chei de presă. Sistemul se oprește și va continua să funcționeze numai după apăsarea tastei
Text scriptual scr2
REZULTATE și explicații
! # / Bin / bash clar ecou echo kol_vo param $ # echo echo "toate param => $ *" echo "toate param 2 => $ @" echo "param_ry: un $ 1 | două $ 2 | trei $ 3" echo presa de citire cheie q
Dacă scriptul este chemat după cum urmează, scr2 1 2 3-a, atunci obținem următoarele rezultate. 1 două 3-a 1 2 3-a 1 | două | A treia tastă de apăsare
Acum, să trecem peste descrierea operatorilor utilizați în scripturi. Mai sus am menționat deja declarația de ecou. și, de asemenea, că "$" este utilizat pentru a afișa valorile variabilelor. Pentru a introduce valori pentru o, utilizați operatorul de citire. Exemplul de mai sus arată alocarea valorilor caracterului și numeric la variabile.
Script text scr3
REZULTATE și explicații
#! / bin / bash clar citește o b = $ a + 1 permite c = $ a + 1 dați d = $ b + 1 echo $ a $ b echo "c" $ c "d"
Dacă scriptul este chemat după cum urmează, scr3, obținem următoarele rezultate. Introduceți 3 3 3 + 1 cu 4 d 5 apăsați tasta
În scenarii, puteți utiliza structuri de control. Unul dintre ei presupune utilizarea instrucțiunii if. Formatul înregistrării sale poate fi diferit, de exemplu,
Într-o altă formă, este scrisă după cum urmează
Iată un exemplu de script care compară numărul de fișiere din două directoare. Acest script trebuie executat în sesiunea administratorului principal al sistemului - root.
Script text scr4
REZULTATE și explicații
#! / bin / bash clar ecou ecos ls1 = `ls -a / root ' wc -l` echo echo "col_vo fișiere / rădăcină $ ls1" echo ls2 = `ls -a / home / asplinux | wc -l` echo echo "col_vo fișiere / home / asplinux $ ls3" echo dacă [$ ls2 -lt $ ls1]; apoi echo "/ root" fi dacă [$ ls2 -eq $ ls1]; apoi echo "/ root" fi dacă [$ ls2 -gt $ ls1] apoi echo "/ asplinx" fi echo apăsați tasta citit q
Dacă scriptul este chemat după cum urmează, scr4, obținem următoarele rezultate. Valoarea variabilei este rezultatul ls kol_vo files / root 22 Valoarea variabilei este rezultatul ls kol_vo files / home / asplinux 31 / asplinux
În instrucțiunea if, următoarele combinații de caractere pot fi folosite pentru a specifica condițiile: