Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: webhope 16. 03. 2010, 17:30:13

Název: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: webhope 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
Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: Sten 16. 03. 2010, 17:40:32
Návratový stav naposledy spuštěného příkazu je v proměnné $?
Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: webhope 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.
Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: asdf 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.
Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: Sten 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
Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: webhope 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;
Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: webhope 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.
Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: hoved 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
Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: Sten 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)
Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: asdf 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
Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: webhope 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:


Název: Re: Jak zjístit chybový stav vrácený příkazem?
Přispěvatel: Sten 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