Exercice1: Ecrire le script shell qui permet d'afficher le nombre de mots dans la troisième ligne de chaque fichierdu répertoire courant
Solution:
for fich in *
do
echo le nb de mots dans $fich est:
head -3 $fich | tail -1 | wc -w
done
Exercice2: Ecrire le script shell qui permet d'afficher la somme des nombres de mots dans la troisième ligne de chaque fichier du répertoire courant
Solution:
s=0
for f in *
do
x=`head -3 $f | tail -1 | wc -w `
echo le nb de mots dans $f est : $x
let s=s+x
done
echo somme $s
Exercice 3: Ecrire le script shell qui permet de concaténer f1 f2 f3 f4 F
Solution:
for i in $*
do
k=$i
done
done
if test -e $1 ;
then
If test -r $1 ;
then
exit 0
else
exit 2
fi
else
if test -w `dirname $1`;
then
exit 0
then
exit 0
else
if chmod u+w `dirmane $1`;
then
exit 1
then
exit 1
else
exit 3
fi
fi
while test $1 != $k
do
cat $1 >> $k
shift
done
for i in $*
do
k=$i
done
while test $1 != $k
do
cat $1 >> $k
shift
Done
If test $? -eq 1 ;
then
then
chmod u+w `dirmane $k`
fi
Exercice 4: Ecrire le script shell qui permet de copier f1 f2 g1 g2 h1 h2 f
Solution:
while test $2
do
cp $1 $2
shift
shift
done
if test $1
then
echo $1 non traité
fi
Exercice 5: Ecrire le script shell qui permet de supprimer les fichiers identiques dans le répertoire passé en paramètre
Solution:
cd $1
for i in *
do
if test -f $i
then
for j in *
do
if $i != $j
then
if cmp $i
$j
then
rm $j
fi
fi
done
fi
done
Exercice 6: Ecrire le script shell qui permet de supprimer tous les fichiers en .o qui ont leur .c
Solution:
for prog in
*.o
do
if [
-f `basename $prog .o` .c ]
then
rm $prog
fi
done
Exercice 7: Ecrire le script shell qui permet de chercher et d’afficher tous les sous répertoires,à partir d’un répertoire donné en second argument, qui contiennent un fichier, donné en premier argument.
cherche fichier.ext /
Solution:
cd $2
if test –f
$1
then
echo le
fichier $1 est dans le sous repertoire `pwd`
fi
for i in *
do
if test –d
$i
then
$HOME/cherche
$1 $i
fi
done
Cette
commande aurait pu s’écrire en utilisant la commande find :
find $2
–name $1 -print