Visa RSS-flöde

Tompalaz

Bash: Err_msg = $?

Betygsätt det här inlägget
av 2010-03-07 klockan 22:23 (207 Visningar)
Bash är härligt att scripta och göra mer eller mindre onödiga program.
Om man siktar högt och vill lämna någon form av felmeddelande kan man göra det med hjälp av variabeln $?.

Ett litet exempel.
Om jag skriver i terminalen:
Kod:
ls -l /home/kalle
så kommer försöker jag visa innehållet i katalogen /home/kalle. Dessvärre har jag inte en mapp som heter kalle. Därför får jag följande svar:
ls: cannot access /home/kalle: No such file or directory
Det kan vara användbart vid programmering att kunna visa koder eller liknande. Koden för detta kan jag få fram och jag nu skriver in $?

Jag att får följande:
tomas@tomas-laptop:~$ ls -l /home/kalle
ls: cannot access /home/kalle: No such file or directory
tomas@tomas-laptop:~$ $?
2: command not found
Felkoden för att en mapp inte existerar är alltså kod 2.

Vad är då koden för en mapp som existerar?
tomas@tomas-laptop:~$ ls -l bin/
total 20
-rwxr-xr-x 1 root root 13148 2010-03-05 15:47 install-check
-rwxr-xr-x 1 root root 750 2010-03-05 15:47 jhbuild
tomas@tomas-laptop:~$ $?
0: command not found
Koden för om en mapp existerar är alltså 0.

Detta gäller alla kommandon inte bara ls.
Prova att köra ett kommando följt av $? för att se vad koden för lyckat eller misslyckat är.

Med den här infon kan man sen göra lite mer utförliga program som matar ut felkoder, vilket kanske inte säger användaren så mycket men om man utvecklar program så kan det bli lättare vid felsökning.

Skicka "Bash: Err_msg = $?" till Digg Skicka "Bash: Err_msg = $?" till del.icio.us Skicka "Bash: Err_msg = $?" till StumbleUpon Skicka "Bash: Err_msg = $?" till Google

Kategorier
Sysadmin , Programmering

Kommentarer

  1. KingLeffe -
    KingLeffes avatar
    Bra info!

Trackbacks