#!/bin/bash
# Rediriger stdin en utilisant 'exec'.


exec 6&lt;&amp;0          # Lie le descripteur de fichier #6 avec stdin.
                   # Sauvegarde stdin.

exec &lt; fichier-donnees   # stdin remplacé par le fichier "fichier-donnees"

read a1            # Lit la première ligne du fichier "fichier-donnees".
read a2            # Lit la deuxième ligne du fichier "fichier-donnees".

echo
echo "Les lignes suivantes lisent le fichier."
echo "---------------------------------------"
echo $a1
echo $a2

echo; echo; echo

exec 0&lt;&amp;6 6&lt;&amp;-
#  Maintenant, restaure stdin à partir de fd #6, où il a été sauvegardé,
#+ et ferme fd #6 ( 6&lt;&amp;- ) afin qu'il soit libre pour d'autres processus.
#
# &lt;&amp;6 6&lt;&amp;-    fonctionne aussi.

echo -n "Entrez des données "
read b1  #  Maintenant les fonctions lisent ("read") comme d'ordinaire,
         #+ c'est-à-dire à partir de stdin.
echo "Entrée lue à partir de stdin."
echo "-----------------------------"
echo "b1 = $b1"

echo

exit 0
