Portál AbcLinuxu, 10. května 2025 02:48

Dotaz: BASH - Jak vypsat výsledek

9.7.2012 15:05 Míra
BASH - Jak vypsat výsledek
Přečteno: 269×
Odpovědět | Admin
Mám prosím ještě jeden dotaz se kterým nedokážu hnout. Mám tento kód
echo "Kontroluji existenci adresáře: /home2 : $RESULT" 

if [ -d /home2 ]; then
     RESULT="Adresář existuje"
else
     RESULT="Adresář neexistuje"
fi
Ale nedokážu vypsat výseldeke z if v tom prvním echu v prom. $RESULT, poradí někdo? Děkuji


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.7.2012 15:08 chrono
Rozbalit Rozbalit vše Re: BASH - Jak vypsat výsledek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nepomôže presunúť to echo až za tú podmienku?
9.7.2012 15:54 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: BASH - Jak vypsat výsledek
Odpovědět | | Sbalit | Link | Blokovat | Admin
if [ -d /home2 ]; then
     RESULT="Adresář existuje"
else
     RESULT="Adresář neexistuje"
fi

echo "Kontroluji existenci adresáře: /home2 : $RESULT" 
9.7.2012 18:13 Míra
Rozbalit Rozbalit vše Re: BASH - Jak vypsat výsledek
Odpovědět | | Sbalit | Link | Blokovat | Admin
To existence adresáře v té podmínce měla sloužit pouze jako příklad. Možná by to šlo udělat i líp, jde nějak odchytit chybu? a misto na vypisu na screen ji ulozit jen do nejake promenne? Děkuji
9.7.2012 19:02 Kit
Rozbalit Rozbalit vše Re: BASH - Jak vypsat výsledek
Každý příkaz poskytuje data na standardní výstup a standardní chybový výstup. Přesměruj si je jak potřebuješ.

Ukládání výsledků příkazů do proměnných mi obvykle smrdí. Co s tou proměnnou dál potřebuješ dělat? Uniká mi smysl tvého počínání.
9.7.2012 20:18 Míra
Rozbalit Rozbalit vše Re: BASH - Jak vypsat výsledek
Ale jak ji muzu presmerovat jinam? Tu proměnnou jen vypíšu někde jinde v kodu..
9.7.2012 19:05 NN
Rozbalit Rozbalit vše Re: BASH - Jak vypsat výsledek
Navratovy kod posledniho prikazu ?
$?
NN
9.7.2012 20:18 Míra
Rozbalit Rozbalit vše Re: BASH - Jak vypsat výsledek
Ale to nic neřeší, dostanu jen 0 nebo 1, nic víc.. :(
9.7.2012 20:26 Kit
Rozbalit Rozbalit vše Re: BASH - Jak vypsat výsledek
A co tedy chceš? Leze to z tebe jak z chlupaté deky. Ptáš se na detaily, které se v Bashi vůbec neřeší, protože má lepší nástroje.
9.7.2012 21:36 Ondřej Kubečka | skóre: 29 | blog: datlovo | Ulm
Rozbalit Rozbalit vše Re: BASH - Jak vypsat výsledek
S přihlédnutím k dotazu to asi moc nepomůže, 0/1 si můžete zobrazit třeba takhle... nechávám Vám tam původní pořadí: hlásím, co dělám, testuji, vypíši výsledek... což je jinak jal psali kolegové výše ten problém, totiž že používáte proměnnou, kterou naplníte až poté:

RESULT=("Adresář existuje" "Adresář neexistuje")
echo -n "Kontroluji existenci adresáře: /home2 : " 
[ -d /home2 ]
echo "${RESULT[$?]}"

Ale lépe se Vám na to asi bude koukat takhle (minimální zásah do toho, co jste napsal):

echo -n "Kontroluji existenci adresáře: /home2 : " 

if [ -d /home2 ]; then
     RESULT="Adresář existuje"
else
     RESULT="Adresář neexistuje"
fi
echo "${RESULT}"

První echo neukončí řádek. Druhé echo vytiskne obsah proměnné RESULT.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.