Pascal BEAUSSART

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"

[RETOUR] [HOME]