Considérez le nom de script suivant (légèrement idiot) 'test1.sh':
#/bin/bash
#
sleep 10 &
echo sleep pid = $!
pkill sleep
Quand je le lance, je reçois non seulement le résultat de l'écho, mais aussi le compte rendu par bash de la mort du sommeil sur stderr:
$ ./test1.sh
sleep pid = 3551
./test1.sh: line 5: 3551 Terminated sleep 10
Dans ce cas, j'aimerais supprimer l’impression en stderr. Je sais que je peux le faire en ligne de commande, comme dans:
$ ./test1.sh 2> /dev/null
... mais est - il un moyen de le supprimer de l' intérieur du script? (Je sais que je pourrais l'envelopper dans un second script et le rediriger vers le wrapper, mais il doit y avoir quelque chose de plus facile ...)