Portál AbcLinuxu, 30. dubna 2024 00:46


Dotaz: Bash - problém s ERR

14.5.2015 12:11 Jakubysko
Bash - problém s ERR
Přečteno: 281×
Odpovědět | Admin
Ahoj, měl bych ještě jeden dotaz, proč tohle nefunguje ? Poradí někdo ? Díky
trap 'konec $LINENO' ERR 

function konec()
{
   exit 1
}


function start()
{
   blabla
}

start 2>/err.log

echo "Toto vidím, ale neměl bych, jelikož blabla nic není"

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

Odpovědi

Jendа avatar 14.5.2015 13:00 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bash - problém s ERR
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nechápu čeho chceš dosáhnout. První odkaz z Googlu vypadá příčetně. Možná vadí trap ještě předtím než ta funkce existuje?
Já to s tou denacifikací Slovenska myslel vážně.
14.5.2015 13:07 ET
Rozbalit Rozbalit vše Re: Bash - problém s ERR
neni spis problem v tech jednoduchych uvozovkach 'konec $LINENO' (se pak ta promenna nedosadi) - pouzij dvojte uvozovky
Jendа avatar 14.5.2015 13:10 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Bash - problém s ERR
Ale ty chceš právě trapu předat $LINENO. Když ji dosadíš hned shellem, bude tam její obsah.
14.5.2015 13:33 ET
Rozbalit Rozbalit vše Re: Bash - problém s ERR
pravda
14.5.2015 14:04 Jakubysko
Rozbalit Rozbalit vše Re: Bash - problém s ERR
Nechápu čeho chceš dosáhnout.
Toho, že když bude chyba, zavolá se funkce 'konec' a ukončí celý script.

function konec()
{
  st=$?
  # Uklidíme...
  # Vypišeme podrobnosti o chybě..
  exit $st
}

trap 'konec $LINENO' ERR 

function start()
{
   blabla
   echo "Toto vidím, ale neměl bych, jelikož příkaz blabla neexistuje"
   blabla2
   echo "I toto vidím, ale neměl bych, jelikož příkaz blabla2 taky neexistuje"
}

start 2>/err.log
14.5.2015 20:44 RM
Rozbalit Rozbalit vše Re: Bash - problém s ERR
já tedy nevim, ale mně ten tvůj příklad (první uvedenej) normálně funguje: pokud do funkce konec dám před exit echo $1, pak se mi vytiskne 14, což je přesně místo, kde to nabouralo. (Ten dlouhej text se nevytiskne.)
14.5.2015 20:40 RM
Rozbalit Rozbalit vše Re: Bash - problém s ERR
Možná vadí trap ještě předtím

trap by měl být první, to že je funkce až za nevadí
14.5.2015 15:17 Sten
Rozbalit Rozbalit vše Re: Bash - problém s ERR
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nejspíš protože selže přesměrování do /err.log, takže start se vůbec nespustí.
14.5.2015 16:33 pavele
Rozbalit Rozbalit vše Re: Bash - problém s ERR
trap 'mrproper' 1 2 3 6 15
prerus="ne"

function mrproper {
 prerus="ano"
}

for ((;;))
do
#Nedavat tento radek na jine misto. Zacykleni zaruceno, funguje poze SIGKILL (kill -9)
if [ "$prerus" = "ano" ]
  then
     echo "Program ukoncen. Spoustim program hlubokeho cisteni"
     exit 1
fi

sleep 15

echo "Backup"
echo "Nazdar!"

done

14.5.2015 23:06 Jakubysko
Rozbalit Rozbalit vše Re: Bash - problém s ERR
Můůžeš mi objasnit to telefoní číslo v prním řádku ?
14.5.2015 23:59 petr
Rozbalit Rozbalit vše Re: Bash - problém s ERR
man 7 signal

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.