Finition des corrigés d'exercices de Shell

This commit is contained in:
jriou 2002-12-10 22:22:11 +00:00
parent 9d8a0bef78
commit aa058a0c3f
2 changed files with 71 additions and 6 deletions

View file

@ -579,6 +579,15 @@ Note
pour reconstruire l'arborescence, on utilise <tt>tar zxvf fichier</tt>.
</strong></p>
<pre>
(echo "To: $1";
echo "Subject: $2";
echo " Pour lire ce document, sauvegardez ce mail (par exemple sous le "
echo "nom bidule) et faites ";
echo "uudecode bidule | tar tvzf -";
echo "pour récupérer les fichiers du répertoire $2";
tar cvf - $2 | gzip | uuencode /dev/stdout) | mail $1
</pre>
</li>
@ -589,7 +598,7 @@ par <tt>~</tt> (tilde) dans la sous-arborescence du r
courant.</a></strong>
<pre>
find . -name \( '*~' -0 'core' \) -print
find . -name '*~'
</pre>
<p>
@ -604,7 +613,19 @@ d
<li>S'appelant <tt>core</tt>;</li>
<li>S'appelant <tt>a.out</tt>.</li> </ol></li>
<li>S'appelant <tt>a.out</tt>.</li> </ol>
<pre>
#!/bin/sh
for i in `find . \( -name '*~' -o -name 'core' -o -name 'a.out' -o -name '#*#' \) -type f` ;
do
rm -f $i
done;
</pre>
</li>
@ -612,7 +633,7 @@ d
Écrire un script permettant d'appliquer divers filtres sur un fichier. Ce
script est lancé avec un argument, qui doit être un nom de fichier appelé
fichier de travail; dans le cas contraire, on afficher un message d'erreur.
fichier de travail; dans le cas contraire, on affiche un message d'erreur.
On attend ensuite une commande en mode interactif, qui peut
être :</a></strong>
@ -631,7 +652,51 @@ fichier de travail dans le fichier pr
<li> autre chose : message d'erreur.</li>
</ul></li>
</ul>
<pre>
#!/bin/sh
if [ $# != "1" ]; then echo "Indiquez un nom de fichier";exit 1; fi
if [ ! -r $1 ]; then echo "Fichier $1 inexistant";exit 1; fi
TRAVAIL=$1
while true;
do
read CMD
case $CMD in
end) exit 0;;
cherche) echo -n "Motif ? ";read MOTIF;
echo -n "Fichier ? ";read FICHIER;
if [ -w $FICHIER ]; then
echo "Le fichier $FICHIER existe déjà";
else
grep $MOTIF $TRAVAIL &gt; $FICHIER
fi
;;
tete|fin)
echo -n "Lignes ? ";read LGN;
echo -n "Fichier ? ";read FICHIER;
if [ -w $FICHIER ]; then
echo "Le fichier $FICHIER existe déjà";
else
case $CMD in
tete) head -n $LGN &lt; $TRAVAIL &gt; $FICHIER;;
fin) tail -n $LGN &lt; $TRAVAIL &gt; $FICHIER;;
esac
fi
;;
*) echo "Commande inexistante";;
esac
done
</pre>
</li>
</ol>

View file

@ -328,7 +328,7 @@ par <tt>~</tt> (tilde) dans la sous-arborescence du r
courant.
<pre>
find . -name \( '*~' -0 'core' \) -print
find . -name '*~'
</pre>
<p>
@ -351,7 +351,7 @@ d
</a>
Écrire un script permettant d'appliquer divers filtres sur un fichier. Ce
script est lancé avec un argument, qui doit être un nom de fichier appelé
fichier de travail; dans le cas contraire, on afficher un message d'erreur.
fichier de travail; dans le cas contraire, on affiche un message d'erreur.
On attend ensuite une commande en mode interactif, qui peut être :
<ul>