Table of Contents

Shell Scripting

Slide-uri de prezentare

Tutorial

One Liners

Aflați ce face comanda 'seq'.

Folosind comanda seq generați toate numerele de la 1000 de la 2000, din 10 în 10.

Comanda seq este de multe ori folosită împreună cu comanda for.

for i in $(seq 1 2 100); do
    touch $i
done

for i in $(seq 2 2 101); do
    mkdir $i
done

Folosiți if și condiții de test pentru a afișa care dintre fișierele din the_one_dir sunt fișiere normale și care directoare.

for file in *; do
    if test -d "$file"; then 
         echo $file is a directory
    else 
         echo $file is a file
    fi
done

Shell scripts

Scrieți într-un editor următorul shell script cu numele my_first_script.sh simplu și rulați-l.

#!/bin/bash

echo "Hello world."
chmod u+x my_first_script.sh
./my_first_script.sh

Rulați următorul script (numit args_script.sh) ce necesită argumente la linia de comandă.

#!/bin/bash

echo $1

Îmbunătățiți scriptul pentru a afișa toate argumentele date.

#!/bin/bash

echo $*

Îmbunătățiți scriptul pentru a se verifica că se primește cel puțin un parametru.

#!/bin/bash

if test $# -lt 1; then
   echo "Numar insuficient de parametri"
   exit 1
else
   echo $*
fi

Scrieți un script numit get_pid.sh care să afișeze PID procesului scriptului.

#!/bin/bash

echo My id is $$

Rulați scriptul în diverse moduri de mai multe ori:

Exerciții

  1. Scrieți și rulați un script bash numit args.sh care afișează:
    • numărul de argumente primite în linia de comandă
    • doar primele două argumente separate prin \ (backslash)
    • exemplu de rezultat afișat pentru apelul args.sh a b: numărul de parametri este 2: param1=a\param2=b
    • Ce se întamplă dacă scriptul primește mai puțin de două argumente?
  2. Folosiți comanda read a pentru a citi în variabila a o valoare.
    • Introduceți o valoare care conține TAB-uri. Încheiați cu ENTER.
    • Afișați valoarea variabilei a folosind echo $a și echo "$a"}.
  3. Scrieți și rulați un scrip shell numit mysum.sh care calculează suma a două numere transmise ca argumente.
  4. Creați un script numit age.sh care primește ca parametri: prenume, nume, anul nașterii, anul curent și afișează numele, prenumele și vârsta curentă.
    • Scrieți scriptul age.sh în mai multe variante, folosind:
      • 3 comenzi echo
      • 1 comandă echo
    • Exemplu de output pentru apelul ./age.sh gogu sclipici 1979 2009:
      Nume: sclipici
      Prenume: gogu
      Varsta: 30