Portál AbcLinuxu, 10. května 2025 22:15

Dotaz: BASH - Problém s logem

14.1.2013 00:19 Ondra
BASH - Problém s logem
Přečteno: 477×
Odpovědět | Admin
Ahoj, mám problém s logem
#obsah souboru /tmp/go
read -p "Váš mail:" MAIL

#funkce start
start ()
{
   ...
   /tmp/go
   ...
}

#spustím funkci start a chyby přesměruji do souboru /tmp/error.log
start 2>/tmp/error.log
Když spustím funkce start která spustí soubor /tmp/go, tak na obrazovce nic neuvidím ale v souboru tmp/error.log mám napsáno Váš mail:. Co je špatně? To přesměrování 2>? Má to být jinak? Nebo se musí zrušit to přesměrování před spuštěním /tmp/go? Díky za pomoc
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.1.2013 08:39 Cronin
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Upresni, ako to spúšťaš. Manuálne, alebo cron-om?

Ak je /tmp na samosteatnej partícii, je z veľkou pravdepodobnosťou mountovaná ako noexec.
14.1.2013 10:19 Ondra
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Spouštím to manuálně a /tmp je na stejném disku, respekivně mám jen jeden disk. Díky
14.1.2013 10:30 NN
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Odpovědět | | Sbalit | Link | Blokovat | Admin
#!/bin/sh
read -p "Foo: " BAR

start ()
{
        echo foobar
}

start 2> /tmp/foo.log
se chova podle ocekavani..
14.1.2013 10:40 Ondra
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Já mám ale ten kod zcela jiný než uvádíš ty.
14.1.2013 10:50 NN
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Co cekas? Parametr -p zobrazi prompt do stderr a ten posles do souboru, tecka. Spracovani stdout ani promenne MAIL nikde.. takze tvuj program dela presne to co ma.
14.1.2013 11:09 Ondra
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Tak jak to mám opravit? Dík
14.1.2013 11:25 NN
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Co chces a by to vlastne delalo ? Btw. jsem nepochopil proc nacitas vstup spustenim souboru z funkce..(??)

Jedine co je poznat,je ze nacitas mail..
14.1.2013 11:35 Ondra
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Chci aby to fungovalo, chci vidět, že mám zadat email a chci vidět i to, že píšu ten email a přitom chci posílat chyby do souboru z té funkce. V té funkci je to proto, jelikož je tam více scriptů které se dosazují podle různých parametrů, funkce start je vlastne jako by menu. Dík
14.1.2013 12:32 NN
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Treba takto:
#!/bin/sh
get_mail()
{
        echo -n "Zadej mail: "; read MAIL
}

start()
{
  get_mail
  if ! [ -n "$MAIL" ]; then echo "prazdny mail.." 1>&2; fi
}

start 2>> foo.log
14.1.2013 13:52 Ondra
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Dík, jiná možnost není? Myslím tím jak to nespouštět v další funkci ale spustit přímo ten soubor. Ihmo můžeš tohle upřesnit? 1>&2 Díky
14.1.2013 14:03 NN
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Jiste, ze muzes spoustet soubor, ale proc, kdyz muzes zavolat funkci, nebo volat prikaz read primo..

1>&2

presmeruje stdout prikazu echo do stderr takze je mozne jej v nem pozdeji odchytit, nicmene stejne tak by se dal vyuzit prikaz return, nebo standartni vystup..
14.1.2013 18:27 Ondra
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Jiste, ze muzes spoustet soubor
no ale jak pořád nevím :-(
ale proc, kdyz muzes zavolat funkci, nebo volat prikaz read primo..
No jak jsem již psal, v té funkci start se ty scripty mění, jednou je to read jindy zase restart, jindy backup atd..

14.1.2013 20:41 NN
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Nechapu ,ale budiz:
get_mail.sh
#!/bin/sh
echo -n "Zadej mail: "; read MAILADDR
export MAILADDR

main.sh
#!/bin/sh
start()
{
  . get_mail.sh
  if [ -z "$MAILADDR" ]; then echo "prazdny mail.." 1>&2; fi
}
start 2>> foo.log
14.1.2013 20:53 Ondra
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Ty buď mě nerozumíš, nebo si děláš srandu, nebo mi to prostě nechceš prozradit :-D

Ten soubor get_mail.sh nechci sourcovat do té funkce start, nepotřebuji v té funkci start nepotřebuji ani znát žádný výsledek, vše se provede v souboru get_mail.sh a po ukončení scriptu chci vše ihned zahodit. Díky
14.1.2013 22:28 NN
Rozbalit Rozbalit vše Re: BASH - Problém s logem
No tak ted uz jsem v koncich :D.
14.1.2013 14:06 Jirka
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Nechces se na to programovani vykaslat? :-)

V bashi vicemene nedelam, ale kdyz dam do google: "bash 1>&2", tak mi to najde relevantni odpovedi... Kdo neumi googlit, tezko muze byt v oblasti IT k necemu dobry...
14.1.2013 14:19 Ondra
Rozbalit Rozbalit vše Re: BASH - Problém s logem
Chci, ale nemůžu :-D
14.1.2013 14:49 Jirka
Rozbalit Rozbalit vše Re: BASH - Problém s logem
S takovym pristupem stejne na te skole dlouho nevydrzis :)))

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.