x<&n
L'instruction x<&n réaffecte le descripteur n au
descripteur x
print "Bonjour" > fic1
print "Salut" > fic2
exec 3<fic1 # fic1 ouvert en lecture par le descripteur 3
exec 4<fic2 # fic2 ouvert en lecture par le descripteur 4
read -u4 ligne # descripteur 4 : fic2
print $ligne
Salut
exec 4<&3 # Réaffecte le descripteur 3 au descripteur 4
read -u4 ligne # descripteur 4 = descripteur3 : fic1
print $ligne
Bonjour
L'usage le plus interessant est la sauvegarde des sorties standard et d'erreur
avant leur réaffectation pour un fichier journal :
DATE=$(date +"%d%m%y")
progname=$(basename $0|cut -d. -f1)
FIC_LOG=$_log/$progname.$DATE
exec 4<&1 # Sauvegarde de la stdout dans le descripteur 4
exec 5<&2 # Sauvegarde de la stdout dans le descripteur 5
exec 1>>&FIC_LOG 2>&1 # La stdout et la stderr sont affectées au journal
print -u4 "Sortie à l'écran"
echo "Sortie dans le journal"