Domanda

C'è un modo per me di implementare i segnali falsi personalizzato in ksh? Attualmente sto catturando il segnale ERR e uscire. Tuttavia, a causa di un cambiamento, ci sono le chiamate che non possono restituire il successo, tuttavia, che è una condizione valida. In tal caso, voglio fare in modo che questa chiamata genera un segnale diverso o gestire l'ERR in modo diverso. C'è un modo per farlo?

È stato utile?

Soluzione

È possibile utilizzare kill per inviare qualsiasi segnale che si desidera la shell corrente. È possibile utilizzare exit in una subshell o return in una funzione per impostare qualsiasi codice di errore che si desidera.

Prova questo script:

#!/bin/ksh
trap 'echo USR1 signal processed' USR1
trap 'echo ERR signal processed' ERR
[[ $1 == a ]] && kill -s USR1 $$ || (exit 1)
echo "done"

Esempio:

$ ./testsignal
ERR signal processed
done
$ ./testsignal a
USR1 signal processed
done

Altri suggerimenti

Forse si potrebbe semplicemente avvolgere il bilancio i cui codici di uscita si vuole trattare soprattutto in una costruzione che sarebbe semplicemente fare quello che vuoi (che impiegano "o" o "se non" le costruzioni e l'analisi dei codici di uscita).

Questo sembra essere uno stile di programmazione molto più pulito, non è vero?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top