[bash] traps maar dan niet meteen exit

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • MisterE
  • Registratie: April 2002
  • Laatst online: 01-10 18:56
ik ben bezig met een script. Deze heeft een main loop waarin hij veel dingen aanroept.
Ik zou graag willen dat ik het script kan stoppen met bijv. ctrl-c. Maar dan moet ie eigenlijk de mainloop afmaken en bij het volgende item stoppen.
Is dit mogelijk?

schematisch gezien

( loop ) (en niet ctrl-c)
{
doe iets
#gebruiker drukt bijv hier op ctrl-c
doe nog iets anders
}

dus "doe nog iets anders" die nog afmaken en dan stoppen.

Acties:
  • 0 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

(jarig!)
Ehm, in je topic titel staat al trap. Had je dat daadwerkelijk gevonden of gebruikte je dat per toeval?

Want 'trap' is precies wat je nodig hebt. Specifiek, je wilt SIGINT trappen.

http://linux.die.net/Bash-Beginners-Guide/sect_12_02.html

[ Voor 14% gewijzigd door CyBeR op 21-03-2012 17:45 ]

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 02-10 22:42

CAPSLOCK2000

zie teletekst pagina 888

gebruik die trap om een variable te veranderen. Controleer die variabele in je loop.

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • MisterE
  • Registratie: April 2002
  • Laatst online: 01-10 18:56
nee had wat gegoogled maar nog niet mee geprutst. Ik dacht eigenlijk dat ie na de "trap" het programma zou sluiten. Als ik dus alleen de variabele in de trap kan aanpassen dan moet het wel lukken.

Ik neem aan dat de trap dan atomair oid is. Dus dat ie niet iets kapot maakt terwijl een proces loopt.

Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 02-10 22:42

CAPSLOCK2000

zie teletekst pagina 888

Misschien dat het trap-commando zelf wel atomair is, maar wat er in de aangeroepen functie gebeurd zeker niet. "iets kapot maken" is te vaag om op te reageren. Bash gaat niks stuk maken.

This post is warranted for the full amount you paid me for it.