Sunteți pe pagina 1din 7

Ex.

: S se scrie un script care afieaz data curent,


directorul
curent
i
coninutul
directorului curent.
Informaii ajuttoare:
- caractere escape:
\n - linie nou
\t - tab
\c - continu pe aceeai linie
- convertirea unui fiier la fiier executabil
CHMOD 700 SCRIPT001
- aflarea directorului curent: comanda PWD
CLEAR
ECHO \N\N\N
ECHO DATA CURENTA ESTE\N
DATE
ECHO \N\NDIRECTORUL CURENT ESTE\N
PWD
ECHO \N\NACEASTA ESTE LISTA FISIERELOR
LS

Comanda READ
Aceast comand ne permite s furnizm parametrii
programului nostru prin intermediul tastaturii. Parametrii
furnizai sunt transmii prin intermediul unor variabile.
Ex.: Program de redenumire a unui fiier
CLEAR
ECHO \N\N
ECHO INTRODUCETI NUMELE VECHI AL FISIERULUI \C
READ OLD

ECHO

\N\NINTRODUCETI NUMELE NOU AL FISIERULUI

\C
READ NEW
MOV $OLD $NEW
ECHO \N\NFISIERUL

$OLD REDENUMIT IN $NEW


//ghilimelele nu mpiedic expandarea variabilelor
Primirea i gestionarea parametrilor
Parametrii din linia de comand sunt preluai n script prin
intermediul variabilelor $1, $2,,$9. Astfel, primul
parametru din linia de comand (imediat dup numele
scriptului) este regsit n script ca $1, al doilea ca $2, i aa
mai departe.
Ex.: Program de verificare pentru primirea de parametrii
(schimb directorul curent i afieaz coninutul noului
director).
Se
apeleaz
cu
$NUME_SCRIPT
CALE_CATRE_DIRECTOR
CD $1
PWD
LS

Ex.: Script de cutare a unui fiier dat n linia de comand.


Se apeleaz cu $NUME_SCRIPT FISIER_DE_CAUTAT
CLEAR
ECHO CAUT FISIERUL $1
ECHO \NDUCETI-VA LA CULCARE PANA
FISIERUL
ECHO
FIND -NAME $1 PRINT >>/DEV/NULL //erorile

GASESC

nu sunt
afiate. Deoarece comanda

i ncepe cutarea de
la rdcin, se tinde s se
intre i n directoare n care
utilizatorul nu are acces
FIND

Buclri
FOR ruleaz o secven de comenzi de un
FOR VARIABILA IN ART1 ART2 ART3
DO
COMANDA1
COMANDA2

numr fix de ori

DONE

Ex.: un joc de culori


FOR COLOR IN ROSU GALBEN VERDE ALBASTRU
DO
CLEAR
ECHO $COLOR
SLEEP 2
DONE

atta timp ct condiia este


adevrat, execut comenzile. Cnd condiia nu mai este
adevrat, se continu cu urmtoarea comand dup bucl.
Dac condiia este tot timpul adevrat, atunci scriptul va
cicla la infinit.
WHILE

CONDIIE [COMENZI]

FOR CONDIIE
DO
COMANDA1

COMANDA2

DONE

Ex.: un program de contorizare


COUNT = 0
WHILE [$COUNT < 10]
DO
CLEAR
ECHO $COUNT
COUNT = $COUNT + 1
SLEEP 2
DONE
ECHO \N\NNUMARATOARE INCHEIATA

Ramificri
IF

Declaraia IF testeaz o condiie iniial, rulnd anumite


comenzi n funcie de rezultatul evalurii condiiei
respective.
IF CONDITIE
THEN
COMANDA1
COMANDA2

ELSE
COMANDA3

FI

Ex.: un script de verificare dac un utilizator (al crui


username a fost primit prin linia de comand) este logat sau
nu.
NAME = $1;
IF WHO|GREP $NUME >/DEV/NULL
THEN
ECHO UTILIZATORUL $NUME ESTE LOGAT
ELSE
ECHO UTILIZATORUL $NUME NU ESTE LOGAT
FI
CASE

Declaraia CASE permite o ramificare la o anumit


secven dintr-o niruire de secvene pe baza unei selecii
fcute de utilizator. Acelai efect s-ar fi obinut prin
utilizarea multipl a declaraiei IF.
CASE $VARIABILA IN
VALOAREA1)
COMANDA1

VALOAREA2)
COMANDA2

VALOAREA3)
COMANDA3

*)
COMANDA_CAND_NICI_O_ALTA_VALOARE_NU_ESTE_CE
A_BUNA

ESAC

Ex.: un script care genereaz un meniu i ateapt alegerea


utilizatorului
CLEAR
ECHO SELECTATI O OPTIUNE
ECHO \N1) DIR-UL CURENT
ECHO \N2) CINE ESTE LOGAT
ECHO \N3) IESIRE
ECHO \NOPTIUNEA DVS.: \C
READ CHOICE
CASE $CHOICE IN

1)
CLEAR
ECHO ALEGEREA 1
PWD

;;
2)
CLEAR
ECHO ALEGEREA 2
WHO

;;
3)
CLEAR
ECHO ALEGEREA 3
EXIT

;;
*)
CLEAR
ECHO ALEGERE INCORECTA!

;;

ESAC