MC, 17:03 piątek, 21.01.2011 r.
Ilustracja do artykułu: Linux echo - Jak sprawdzić kod wyjściowy programu

Linux echo - Jak sprawdzić kod wyjściowy programu

Każdy, kto zetknął się z programowaniem, wie, że poprawnie napisany program powinien na wyjściu zwrócić jakąś wartość liczbową - 0 gdy program wykona się w sposób prawidłowy, zaś inne wartości w momencie, gdy coś pójdzie nie tak. Jak zatem sprawdzić, z jakim kodem wyjściowym zakończył się program? Kod wyjściowy ostatnio wykonanego programu, przetrzymywany jest w zmiennej $?, zatem by zobaczyć, z jaką wartością wykonał się program, należy wyświetlić zwartość tej zmiennej. Zrobimy to poleceniem:
echo $?

Polecam przeanalizowanie poniższego odczytu z terminala:
mateusz@mateusz:/$ ls -1
bin
boot
cdrom
dev
dysk
etc
home
initrd.img
lib
lost+found
media
mnt
proc
root
sbin
selinux
srv
sys
tmp
usr
var
vmlinuz
mateusz@mateusz:/$ echo $?
0
mateusz@mateusz:/$ ls -1 katalog_ktory_nie_istnieje
ls: nie ma dostępu do katalog_ktory_nie_istnieje: No such file or directory
mateusz@mateusz:/$ echo $?
2
mateusz@mateusz:/$

Jak widzimy, gdy program ls poprawnie wykonał swoje zadanie, zwrócił 0, zaś gdy kazałem mu wylistować pliki z katalogu, który nie istnieje, zwrócił wartość 2, czyli błąd.
Zerknijmy jeszcze do pomocy programu ls, aby zobaczyć jakie kody wyjściowe posiada i co one oznaczają:
Kod wyjściowy:
0 jeżeli bez błędów,
1 przy drobnych problemach (np. brak dostępu do podkatalogu),
2 przy poważnych problemach (np. brak dostępu do podanego argumentu).

Umiejętność sprawdzenia, z jakim kodem program kończy swoje działanie, jest bardzo przydatna, gdy piszemy zarówno skrypty jak i programy, który np. wywołują inne aplikacje. Pozwala to również na przeanalizowanie problemów, gdy program nie zachowuje się zgodnie z naszymi oczekiwaniami.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: