Question

est-il pour moi un moyen de mettre en œuvre des signaux de faux personnalisé dans ksh? Actuellement je suis capturer le signal ERR et sortant. Toutefois, en raison d'un changement, il y a des appels qui ne peuvent pas revenir succès, mais qui est une condition valide. Dans ce cas, je veux vous assurer que cet appel génère un signal différent ou différemment gérer le TRE. Est-il possible de le faire?

Était-ce utile?

La solution

Vous pouvez utiliser kill d'envoyer tout signal que vous voulez le shell courant. Vous pouvez utiliser exit dans un sous-shell ou return dans une fonction pour définir un code d'erreur que vous voulez.

Essayez ce script:

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

Exemple:

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

Autres conseils

Peut-être que vous pouvez simplement envelopper les déclarations dont les codes de sortie que vous voulez traiter spécialement dans une construction qui serait tout simplement faire ce que vous voulez (en utilisant « ou » ou « sinon » constructions et l'analyse des codes de sortie).

Cela semble être un style de programmation beaucoup plus propre, non?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top