Administrare server open source

Platforma de hosting cu software liber, gratuit, open source.

Comentariile sunt închise pentru Codul de iesire returnat de aplicatii

La rularea unei aplicatii sau comenzi se returneaza intotdeauna un cod (exit status) care ne spune cum s-a terminat aplicatia. Daca codul returnat e 0 aplicatia a rulat fara nici un fel de probleme si treaba a fost dusa la bun sfarsit. Codul de iesire se poate gasi citind variabila $? care va contine codul ultimei aplicatii sau comenzi rulate. Ca exemplu folosim comanda date care va returna codul 0 pentru ca nu are ce sa nu functioneze in afisarea datei:

[email protected]:~$ date
Tue May 13 07:52:42 EEST 2008
[email protected]:~$ echo $?
0
[email protected]:~$

Daca in schimb am avea o comanda care poate da gres, si in exemplul nostru va da gres, codul returnat va fi altul. De exemplu, daca incercam sa rulam o comanda inexistenta vom primi codul de eroare 127 care este generat de interpretor si care ne spune ca nu s-a putut rula comanda data.

[email protected]:~$ comandaInexistenta
bash: comandaInexistenta: command not found
[email protected]:~$ echo $?
127
[email protected]:~$

Variabila $? poate fi utilizata si in scripturi. Cu ajutorul variabilei putem apela alte comenzi iar apoi verificam rezultatul. Un exemplu util ar fi cautarea unui sir de caractere intr-un fisier. Folosim test.sh, un script care verifica existenta unui sir in fisierul /etc/shells, pentru a exemplifica:

#!/bin/bash
sir="bash"
grep $sir /etc/shells > /dev/null
output=$?
if [ $output -eq 0 ];then
echo “Sirul cautat exista”
else
echo “Sirul cautat nu exista”
fi

Codul de mai sus se salveaza in fisierul test.sh, ii dam permisiuni de rulare si apoi il rulam. Daca stringul cautat exista in fisierul /etc/shells $output va avea valoarea 0. In caz contrar va avea valoarea 1.

eu@Desktop:/tmp$ chmod 755 test.sh
eu@Desktop:/tmp$ ./test.sh
Sirul cautat exista
eu@Desktop:/tmp$
Linux

Comments are closed.