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.
for
vs. argumente în listă vs. while read
if <command>
tr
, cut
!#
la începutul unui fișierif
, test
, while read
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
.
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
.
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
.
Calculați media notelor de mai sus într-un script compute_average.sh
. Puteți folosi fie shell scripting (while
, read
, expandarea aritmetică) și comanda bc
.
Parsați fișierul bttrack.log
din arhiva capitolului.
Este un fișier jurnal (log) al unui tracker BitTorrent.
Creați un script denumit parse-tracker-log.sh
care parsează intrarea standard și afișează la ieșirea standard 3 coloane: cantitatea de date descărcate de un peer, adresa IP a peer-ului și numele clientului.
/GET /announce
.