Jak zjístit chybový stav vrácený příkazem?

webhope

Jak zjístit chybový stav vrácený příkazem?
« kdy: 16. 03. 2010, 17:30:13 »
Píšu jeden script a zrovna teď mi příkaz umount při pokusu odpojit zařízení psal tuto hlášku:

"umount: podle mtab není /dev/sda2 připojeno"

Chtěl bych aby tam byl příkaz, který uživateli nabídne zjištění uuid (vlastně VSN) a opravení fstabu. No, ale potřeboval bych nějak zjistit jaký chybový stav (nějaké číslo chyby) vrácený tím příkazem. Díky za radu


Sten

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #1 kdy: 16. 03. 2010, 17:40:32 »
Návratový stav naposledy spuštěného příkazu je v proměnné $?

webhope

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #2 kdy: 16. 03. 2010, 17:52:06 »
Aha takže vlastně stačilo napsat echo $? a viděl bych tu hodnotu.

Ale ono mi to stejně nepomůže, když to vrací nula. Tak nevím jak tuto chybu jednoznačně identifikovat.
« Poslední změna: 16. 03. 2010, 17:58:22 od webhope webhope »

asdf

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #3 kdy: 16. 03. 2010, 18:24:13 »
musi to byt prikaz okamzite nasledujuci po umount, pretoze vracia navratovu hodnotu predchadzajuceho prikazu. tiez pozor na zlozene prikazy.

Sten

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #4 kdy: 16. 03. 2010, 18:48:49 »
Ještě možnost by byla:
Kód: [Vybrat]
if ! umount ...; then
   ... # nepovedlo se
fi

anebo
Kód: [Vybrat]
if umount ...; then
    return 0
fi
... # nepovedlo se


webhope

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #5 kdy: 16. 03. 2010, 18:54:57 »
A tak já jsem to zvoral.

Měl jsem tam

Kód: [Vybrat]
umount /dev/$source;
result=$?;
echo $pom;

webhope

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #6 kdy: 16. 03. 2010, 19:28:23 »
jeste stale resim ten script. spoustim to prikazem

Kód: [Vybrat]
su -c "./script.sh"

takze by mel uzivatel mit prava roota. A to taky ma jenze pokud pouziju prikaz blkid tak to pise ze prikaz neexistuje. Kdyz napisu su blkid tak to napise ze uzivatel neexistuje.

hoved

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #7 kdy: 16. 03. 2010, 19:46:02 »
neni nahodou rozdil mezi prikazy su (superuser - udela ti z uzivatele roota na chvili ?? ) a sudo (superuser do)

zkus to poustet se sudo

Sten

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #8 kdy: 16. 03. 2010, 19:54:51 »
su by default nenastavuje proměnnou prostředí PATH, je nutné použít buď su -l nebo sudo (anebo zadat jméno příkazu plnlou cestou: /sbin/blkid)

asdf

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #9 kdy: 16. 03. 2010, 19:55:16 »
Problem budu premenne prostredia ($PATH), ktore sa pouzivaju tvojho pouzivatela, nie roota.

Skus
Kód: [Vybrat]
su - -c "./script.sh"
man su

webhope

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #10 kdy: 16. 03. 2010, 20:19:59 »
Už to mám a funguje to díky /sbin/blkid .

Nicméně.

Když k tomu su přidám např su - nebo su -l, tak to neprojde přes login. (prace-s-oddily.sh je pravy nazev scriptu)

Zadej heslo správce (tj. heslo roota nastavené během instalace):
(během psaní nejsou vidět hvězdičky)
Password:
-bash: ./prace-s-oddily.sh: Adresář nebo soubor neexistuje
Chybné heslo nebo script nelze spustit.
Zadej heslo znovu:
Password:
-bash: ./prace-s-oddily.sh: Adresář nebo soubor neexistuje
Chybné heslo nebo script nelze spustit.
Zadej heslo znovu:
Password:
-bash: ./prace-s-oddily.sh: Adresář nebo soubor neexistuje
Chybné heslo nebo script nelze spustit.
Zadej heslo znovu:
Password:
-bash: ./prace-s-oddily.sh: Adresář nebo soubor neexistuje
Chybné heslo nebo script nelze spustit.
Zadej heslo znovu:
Password:
su: chybné heslo
Chybné heslo nebo script nelze spustit.
Zadej heslo znovu:
Password:



Sten

Re: Jak zjístit chybový stav vrácený příkazem?
« Odpověď #11 kdy: 16. 03. 2010, 22:53:59 »
S tím -l (nebo jen -, to je ekvivalentní) je potřeba uvést plnou cestu, protože se změní aktuální adresář na domácí adresář příslušného uživatele