Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: 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ávratový stav naposledy spuštěného příkazu je v proměnné $?
-
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.
-
musi to byt prikaz okamzite nasledujuci po umount, pretoze vracia navratovu hodnotu predchadzajuceho prikazu. tiez pozor na zlozene prikazy.
-
Ještě možnost by byla:
if ! umount ...; then
... # nepovedlo se
fi
anebo
if umount ...; then
return 0
fi
... # nepovedlo se
-
A tak já jsem to zvoral.
Měl jsem tam
umount /dev/$source;
result=$?;
echo $pom;
-
jeste stale resim ten script. spoustim to prikazem
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.
-
neni nahodou rozdil mezi prikazy su (superuser - udela ti z uzivatele roota na chvili ?? ) a sudo (superuser do)
zkus to poustet se sudo
-
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)
-
Problem budu premenne prostredia ($PATH), ktore sa pouzivaju tvojho pouzivatela, nie roota.
Skus
su - -c "./script.sh"
man su
-
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:
-
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