% cat devnull
#!/bin/sh
echo "on me voit"
# sauvegarde de stdout et redirection vers /dev/null
exec 3>&1 1>/dev/null
echo "on ne me voit plus"
# restauration de stdout et ménage de la sauvegarde
exec 1>&3 3>&-
echo "on me voit à nouveau"
% ./devnull
on me voit
on me voit à nouveau
Évidemment, c'est le même principe si tu veux aussi supprimer la sortie d'erreur, c'est à dire :
...
# sauvegarde de stdout et stderr, et redirection vers /dev/null
exec 3>&1 4>&2 &>/dev/null
...
# restauration de stdout et stderr, et ménage des sauvegardes
exec 1>&3 2>&4 3>&- 4>&-
...
# exec [redirection ...]
Posté par tgl . En réponse au message Redirection générale. Évalué à 10.
% cat devnull
#!/bin/sh
echo "on me voit"
# sauvegarde de stdout et redirection vers /dev/null
exec 3>&1 1>/dev/null
echo "on ne me voit plus"
# restauration de stdout et ménage de la sauvegarde
exec 1>&3 3>&-
echo "on me voit à nouveau"
% ./devnull
on me voit
on me voit à nouveau
Évidemment, c'est le même principe si tu veux aussi supprimer la sortie d'erreur, c'est à dire :
...
# sauvegarde de stdout et stderr, et redirection vers /dev/null
exec 3>&1 4>&2 &>/dev/null
...
# restauration de stdout et stderr, et ménage des sauvegardes
exec 1>&3 2>&4 3>&- 4>&-
...