User Tools

Site Tools


medium-unix:capitole:capitol-08

This is an old revision of the document!


8. Introducere în shell scripting

Pentru funcționalități de automatizare folosim shell scripting. Un script shell este o înlănțiure de comenzi agregate pentru un scop final. Un shell script este o formă quick'n'dirty de automatizare. Pentru aspecte mai complexe, este util să se folosească forme avansate de automatizare precum Awk, Python, Perl sau altele.

Subiecte abordate

  • Ce este un script shell?
  • Comenzi pentru controlul fluxului
  • Utilitare de lucru cu expresii regulate

Best practices

  • Comenzi neinteractive în shell
  • Shell scripting este quick'n'dirty
  • for vs. argumente în listă vs. while read
  • if <command>
  • tr vs. sed
  • cut vs. awk

Utilitare folosite

  • if, test, while read
  • awk, sed

Resurse utile

  • TODO
  • TODO

Slide-uri

Exerciții

Demo-uri

Demo: Folosire sed și awk

Folosire sed pentru substituție. sed este tr++

Folosire sed pentru ștergere.

Folosire sed pentru interschimbare.

Folosire awk pentru afișarea unor coloane. awk este awk++

Folosire awk și expresii regulate pentru afișarea unor coloane.

Demo: Folosire if test

Un script care verifică faptul că primește un argument. Verifică dacă argumentul primit este un nume existent de utilizator. Dacă nu, iese din script. Altfel, schimbă parola utilizatorului cu o parolă generată cu ajutorul comenzii pwgen.

Demo: Folosire while read și test

Un script care afișează utilizatorii care au user id-ul mai mare sau egal decât 500.

Un script care afișează utilizatorii care au user id-ul între 100 și 500, adică mai mare decât 100 și mai mic decât 500.

Extragere informații dintr-un fișier CSV

Pornind de la catalogul din fișierul register.csv din arhiva capitolului, creați scriptul select_7.sh care să afișeze numele și grupa celor care au nota mai mare sau egală cu 7.

Puteți urma pașii ajutători de mai jos.

Fișierul să primească la standard input fișierul register.csv. Adică să ruleze în forma

./select_7.sh < register.csv.

Creați scriptul select_7.sh și folosiți comanda

read line

pentru a citi prima linie din fișier (antetul).

Actualizați în cadrul scriptului variabila IFS pentru ca read să folosească pe post de separator caracterul virgulă (,).

Citiți coloanele folosind while și read (ne interesează numele și grupa studenților).

Folosiți if și test pentru a selecta studenții care au nota mai mare sau egală cu 7.

medium-unix/capitole/capitol-08.1463671892.txt.gz · Last modified: 2016/05/19 18:31 by razvan