O Cette Cette comma commande nde crée crée un fichi fichier er de nom fic fic conten contenan ant t la somme somme du nombre nombre de lign lignes es des
fichiers,durépertoirecourant,dontlenomnecommencepasparDetseterminepardoc. OCettecommandeprovoqueuneerreuràl'exécution. OCettecommandecréetoujoursunfichiervidedenomfic. Question Question 9 : Donner Donner la comma commande nde permet permetta tant nt de trouv trouver er la list liste e des fichie fichiers rs d’ext d’extens ension ion .h situéssouslerépertoire /usr/include. find /usr/include –name “*.h”
sorte sorte que la sorti sortie e stan standar dard d et la sorti sortie e erreur erreur soient soient écrit écrites es dans dans un nouvea nouveau u fichie fichier r nommé nommé Resultat. Resultat. Prompt$ cd /home/2age $ cat login.txt > Resultat 2>&1
Shell(6points) Onsouhaiteécrireunscript remplace.shquireçoitenparamètredeuxnomsdefichiers( fic1 etfic2)etunelistederépertoires.Lefichier fic1 doitêtreunfichierdurépertoirecourant. Aprèsl'exécutionduscript,toutfichier fic2setrouvantdansundesrépertoirespassésen paramètredoitavoirsoncontenuremplacéparceluide fic1. Ecrivezlescript remplace.shcorrespondantexactementàl'algorithmesuivant. Tester le nombre de paramètres, s'il n'est pas correct afficher un message d'erreur et terminer le script. Donner à la variable fic1 la valeur du premier paramètre. Donner à la variable fic2 la valeur du deuxième paramètre. Décaler des deux premiers paramètres dans la liste des paramètres Tester que le premier paramètre est un fichier du répertoire courant. Si ce n'est pas le cas, afficher un message d'erreur et terminer le script. Début boucle La boucle doit permettre, à chaque nouveau tour, de récupérer le paramètre suivant 5
EcoleNationaled’IngénieursdeTunis
Si l'élément est un répertoire Si fic2 est un fichier du répertoire remplacer son contenu par celui de fic1 (Attention : fic2 ne doit pas changer de nom) Fin Si Sinon Afficher que l'élément n'est pas un répertoire Fin si Fin boucle
#! /bin/sh set -x if [ $# -lt 3 ] ; then echo Il faut au moins trois parametres exit 1 fi fic1=$1 fic2=$2 shift 2 if [ ! -f "$fic1" ] ; then echo Le deuxieme parametre doit etre un fichier du repertoire courant exit 1 fi for rep in "$@" ; do if [ -d "$rep" ] ; then if [ -f "$rep/$fic2" ] ; then cat "$fic1" > "$rep/$fic2" fi else echo $rep n\'est pas un repertoire fi done