IMC!


Contenuti


Foto

 







Curiosando...
Novita  Novità Link  Link Blog  Blog English  Español 
11 - Segnali di sistema nella bash

 | 

Un segnale è una specie di "messaggio" che una programma può mandare a un altro programma; un esempio di segnale può essere la pressione della combinazione di tasti CTRL + C, che genera un segnale INT, che di solito interrompe l'esecuzione dello script.
Mascherare un segnale in uno script significa dunque associare a tale segnale una funzione da eseguire quando questo segnale è ricevuto. Nella bash, i segnali di sistema possono essere mascherati tramite il comando trap, secondo la seguente sintassi:

trap nome_funzione nome_segnale

Vediamo un esempio:

#!/bin/bash

# Il seguente script mostra l'utilizzo della funzione trap.
# Nella funzione sono presenti tre conti alla rovescia a partire
# da 10 secondi. E' possibile provare a interrompere tali conteggi
# con CTRL-C (segnale INT) e verificare il comportamento dello
# script.
#
# Durante il primo conteggio, il segnale INT è mascherato con una
# funzione di errore: l'arrivo di questo segnale provoca la
# comparsa sullo schermo dell'errore.
#
# Successivamente, durante il secondo conteggio, il segnale INT viene
# diabilitato: la sua ricezione non provoca alcuna azione.
#
# Infine, durante il terzo conteggio, viene rimossa la maschera: è ora
# possibile interrompere il conteggio.

function errore
{
  echo "Mi spiace, non puoi puoi interrompere il conteggio"
  sleep 3
}

function conta
{
  for i in 10 9 8 7 6 5 4 3 2 1;
  do
    echo "Sono trascorsi: $i secondi"
    sleep 1
  done
}

# Programma principale

####### Conteggio 1

trap errore INT # Mascherazione del segnale con una funzione di errore
echo "Conteggio 1:"
conta
echo " "

####### Conteggio 2

trap '' INT # Disabilitazione del segnale
echo "Conteggio 2:"
conta
echo " "

####### Conteggio 3

trap - INT # Rimozione della maschera
echo "Conteggio 3:"
conta



 


 | 







Commenti

Nessun commento presente!

Scrivi un commento

Pui scrivere quì sotto un commento all'articolo che hai appena letto. Non sono abilitate smile, immagini e link. La lunghezza massima del commento è 4000 caratteri. La buona educazione è benvenuta, tutti i commenti offensivi saranno cancellati.

Your comment (lascia bianco!):
Utente (max 25 caratteri, obbligatorio)
Sito web (max 255 caratteri, facoltativo)
e-Mail (max 255 caratteri, facoltativa, non sarà pubblicata) Your opinion (lascia bianco!):
Commento (max 4000 caratteri, obbligatorio):





Valid HTML 4.01 Transitional
E-Mail - 78.86 ms

Valid HTML 4.01 Transitional