Finition des corrigés d'exercices de Shell
This commit is contained in:
parent
9d8a0bef78
commit
aa058a0c3f
2 changed files with 71 additions and 6 deletions
|
@ -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 > $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 < $TRAVAIL > $FICHIER;;
|
||||
fin) tail -n $LGN < $TRAVAIL > $FICHIER;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
|
||||
*) echo "Commande inexistante";;
|
||||
esac
|
||||
done
|
||||
|
||||
</pre>
|
||||
|
||||
</li>
|
||||
|
||||
</ol>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in a new issue