Twitter RSS
| |

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:

eu@Desktop:~$ date
Tue May 13 07:52:42 EEST 2008
eu@Desktop:~$ echo $?
0
eu@Desktop:~$

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.

eu@Desktop:~$ comandaInexistenta
bash: comandaInexistenta: command not found
eu@Desktop:~$ echo $?
127
eu@Desktop:~$

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$

Popularity: 1% [?]

Ai intrebari?

Reclama
Categorii
Apache
Articole si tutoriale legate de serverul web Apache.
/articole-tutoriale-apache/

cPanel
Articole si tutoriale legate de utilizarea si administrarea sistemului de gestiune a serverelor de hosting, cPanel.
/articole-tutoriale-cpanel-whm/

DNS
Vezi toate articolele din categoria DNS
/dns-bind-domain-name-services/

Linux
Articole si tutoriale legate de Linux, sisteme BSD sau alte sisteme de operare din familia UNIX.
/articole-tutoriale-linux/

Mail
Vezi toate articolele din categoria Mail
/mail/

MySQL
Articole si tutoriale despre serverul de baze de date MySQL.
/articole-tutoriale-optimizare-mysql/

Perl
Vezi toate articolele din categoria Perl
/perl-practical-extraction-and-report-language/

PHP
Vezi toate articolele din categoria PHP
/php-language-hypertext-preprocessor/

Virtualizare
Articole si tutoriale despre virtualizare si sistemel virtuale create cu Xen sau OpenVZ.
/virtualizare-xen-openvz/

Webmin / Virtualmin
Articole si tutoriale legate de sistemul de gestiune gratuit Webmin sau modulul Virtualmin.
/webmin-virtualmin/





Newsletter
LAMP Recomandã
NetHelp
SRV.ro
ABCDomenii