Travail Pratique nr.3: Somipp
Travail Pratique nr.3: Somipp
de la République de Moldova
Université technique de Moldavie
Faculté d’Ordinateur, Informatique et Microélectronique
Filière francophone “Informatique”
SOMIPP
Chișinau 2020
Scopul lucrării: utilizarea consolei, structurilor de control, crearea script-
urilor în bash
1) #!/bin/bash
2) #!/bin/bash
3) #!/bin/bash
VAR=""
echo "Enter Characters"
read a
while [ $a != "q" ]
do
VAR+="$a"
read a
done
echo "######"
echo "$VAR"
4) #!/bin/bash
VAR=0
echo "Enter NUMBERS"
read a
while [ $(($a % 2)) != 0 ]
do
((VAR++))
read a
done
echo "######"
echo "$VAR"
5) #!/bin/bash
6) #!/bin/bash
if [ $PWD == $HOME ]
then
echo "$PWD";
return 0 2>/dev/null
#exit 0;
else
echo -e "ERROR fisierul nu a fost deschis din home";
return 1 2>/dev/null
#exit 1;
fi
Shell – Shell (shell, alias "linie de comandă", alias CLI, alias "consolă", alias
"terminal", alias "fereastră neagră cu litere albe") este o interfață text pentru comunicarea cu
sistemul de operare (bine, strict vorbind, acesta este un program care oferă o astfel de
interfață. LINUX – bash WINDOWS – powershell
https://white55.ru/shells.html#:~:text=%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD
%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BE%D0%BB%D0%BE%D1%87%D0%BA%D0%B0%20(%20shell
%20)%20%D0%BE%D0%B1%D0%B5%D1%81%D0%BF
%D0%B5%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%20%D0%B2%D0%B7%D0%B0%D0%B8%D0%BC
%D0%BE
%D1%82%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%B8%D0%B5,%D0%B8%20%D1%81%D1%80%D0%B5%D0
%B4%D0%BE%D0%B9%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD
%D0%BD%D0%BE%D0%B9%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B%20Linux.&text=
%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%BE%D0%BC%20%D0%BE%D0%B1%D0%BE%D0%BB
%D0%BE%D1%87%D0%BA%D0%B8%20%D0%BC%D0%BE%D0%B6%D0%B5%D1%82%20%D0%B1%D1%8B
%D1%82%D1%8C%2C%20%D0%BD%D0%B0%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80,bash
%20%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B
%D1%85%20%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%20Unix%20%2F%20Linux.
Citarea și \
\ Citarea. Anulează semnificația specială a următorului caracter
\\ Caracterul “\”
https://parallel.uran.ru/book/export/html/461
Operatori:
&& AND
Operatorul AND (&&) va executa a doua comandă numai dacă prima comandă este
SUCCEEDS, adică starea de ieșire a primei comenzi este „0” - programul a fost executat cu
succes.
;
Operatorul punct și virgulă vă permite să executați mai multe comenzi simultan, iar comanda
este executată secvențial.
|| OR
Operatorul OR (||) este foarte similar cu operatorul “else” din programare. Instrucțiunea de
mai sus vă permite să executați a doua comandă numai dacă prima comandă eșuează, adică
starea de ieșire a primei comenzi este „1” - programul NU a fost executat cu succes”.
| PIPE
Acest operator de flux PIPE este foarte util atunci când ieșirea primei comenzi acționează ca
intrare la a doua comandă. De exemplu, indicați ieșirea comenzii „ls -l” la „less” și vedeți
ieșirea întregului script.
https://obu4alka.ru/poleznyh-operatorov-obedineniya-komand-v-linux.html#1_Operator_ampersanda
()
Operatorul vă permite să executați comanda în ordinea priorității.
sort <file>
Sortează conținutul fișierului
cd /proc
cat cpuinfo
sort cpuinfo
https://www.geeksforgeeks.org/sort-command-linuxunix-examples/
let
Comanda let este utilizată pentru a evalua expresiile aritmetice ale variabilelor shell.
https://www.geeksforgeeks.org/let-command-in-linux-with-examples/
test
Comanda test verifică tipurile de fișiere și compară valorile.
https://bash.cyberciti.biz/guide/Test_command#:~:text=test%20command%20syntax&text=Try%20the%20following
%20examples%20and,%22File%20%2Fetc%2Fresolv.
Read
Comanda de citire Bash este un utilitar încorporat utilizat pentru segmentarea cuvintelor
șirurilor sub Linux. echo $REPLY
https://www.baeldung.com/linux/read-command
break
Instrucțiunea break se utilizează pentru a ieși dintr-o buclă FOR, WHILE sau UNTIL, adică
execuția buclei stop.
a=0
while [ $a -lt 10 ]
do
echo $a
if [ $a -eq 5 ]
then
break
fi
a=`expr $a + 1`
done
continue
Pentru a relua următoarea iterație a unei carcase for, while, untill sau select loop.
http://landoflinux.com/linux_bash_scripting_continue_loop.html
exit
Comanda exit în linux este utilizată pentru a ieși din shell unde se execută în prezent. Mai ia
un parametru ca [N] și iese din shell cu o revenire a stării N. Dacă n nu este furnizat, atunci
pur și simplu returnează starea ultimei comenzi care este executată.
https://www.geeksforgeeks.org/exit-command-in-linux-with-examples/#:~:text=exit%20command%20in%20linux%20is,last
%20command%20that%20is%20executed.&text=After%20pressing%20enter%2C%20the%20terminal%20will%20simply
%20close.
if
Instrucțiunea if vă permite să specificați cursurile de acțiune care trebuie luate într-un script
shell, în funcție de succesul sau eșecul unei comenzi. Este o afirmație condițională care
permite un test înainte de a efectua o altă afirmație.
https://www.thegeekdiary.com/bash-if-loop-examples-if-then-fi-if-then-elif-fi-if-then-else-fi/
select
Bucla select oferă o modalitate ușoară de a crea un meniu numerotat din care utilizatorii pot
selecta opțiuni. Este util atunci când trebuie să cereți utilizatorului să aleagă unul sau mai
multe articole dintr-o listă de opțiuni.
https://www.tutorialspoint.com/unix/select-loop.htm#:~:text=The%20select%20loop%20provides%20an,from%20a%20list%20of
%20choices.
case
Declarația case este o alternativă bună la declarația multi-nivel if-then-else-fi. Vă permite să
potriviți mai multe valori cu o singură variabilă. Este mai ușor de citit și de scris.
https://www.tutorialspoint.com/unix/case-esac-statement.htm
while
Bucla bash while este o instrucțiune de flux de control care permite executarea repetată a
codului sau a comenzilor pe baza unei condiții date.
https://www.tutorialspoint.com/unix/while-loop.htm
until
Bucla until este utilizată pentru a executa un set dat de comenzi, atâta timp cât condiția dată
este evaluată ca fiind falsă.
https://www.tutorialspoint.com/unix/until-loop.htm
for
Bucla for repetă o listă de iterații și execută setul de comenzi dat.
https://www.tutorialspoint.com/unix/for-loop.htm