bonjour à tous,
voila, je révise des partiels et j'aimerai votre aide. J'ai pris le partiel de l'an dernier et l'ai refait. Pourriez vous lire ce que j'ai fait et si besoin corriger?De plus, je ne sais pas répondre à deux questions pourriez vous m'aider?
voici donc tout ca :
1 - Ecrire un script qui vérifie l'existance dans le répertoire courant du fichier dont le nom est passé en paramètre
2 - Ecrire un script qui vérifie que le nom passé en paramètre est un fichier ou un répertoire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 NomFichier = « monFichier » If ( -e NomFichier) then Echo « NomFichier se trouve dans le répertoire courant » Endif
3 - Ecrire un script qui qui concatène puis trie deux fichiers file1 et file2 dans un nouveau fichier file3 et affiche le nombre total de lignes. (les noms des trois fichiers doivent être passés en paramètre)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 if ($1 == "") then echo "aucun nom de fichier en parametre" else if (-d $1) then echo "$1 est un repertoire" else if (-f $1) then echo "$1 est un fichier" else echo "$1 n'est ni un fichier ni un paramètre"
4 - Ecrire un script formé de deux fonctions. la fonction "somme" qui calcul la somme des nombres saisis au clavier et la fonction affiche qui affiche le résultat à l'écran
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 cat file1 file2 | sort > file3 set nblig=`cat file3|wc -l echo "Le fichier file contient $nblig lignes"
5 - modifier le script précédent ("4") pour demander à l'utilisateur de saisir au clavier le (ou les) noms de fichiers qu'il aurait oublié d'indiquer en lancant le script.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 cat file1 file2 | sort > file3 set nblig=`cat file3|wc -l echo "Le fichier file contient $nblig lignes" 4 Somme( ) { Echo « chiffre 1 : « Read a Echo « chiffre 2 : « Read b C = a + b Affiche $c } Affiche( ) { Echo « $1 » }
je ne sais pas
6 - Ecrire un script de shell qui permet de traiter un répertoire en transformant les noms des fichiers du majuscules aux minuscules
7 - modifier le script précédent ("6") pour pouvoir traiter le cas ou l'argument est un fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Trouver TousFichier() { $NomFichier $NouveauNom for $NomFichier in $1 ; do #$1 est le répertoire $NouveauNom =`echo $ NomFichier | tr 'A-Z' 'a-z'` mv $NomFichier $NouveauNom done }
8 - corriger le script précédent ("7") pour tenir compte des fichiers qui peuvent porter le même nom ou l'utilisateur passe plus d'un argument
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Trouver TousFichier() { $NomFichier $NouveauNom if [ ! -f $1 ] ; then { echo « vous avez passé un fichier et non un répertoire en paramètre » } else { for $NomFichier in $1 ; do #$1 est le répertoire $NouveauNom =`echo $ NomFichier | tr 'A-Z' 'a-z'` mv $NomFichier $NouveauNom done } fi }
je ne sais pas
9 - Améliorer le script précédent en lui ajoutant une option -m pour les minuscules et -M pour les majuscules
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Trouver TousFichier() #$1 nomrépertoire, $2 : -m ou -M { $NomFichier $NouveauNom if [ ! -f $1 ] ; then { echo « vous avez passé un fichier et non un répertoire en paramètre » } else { If[$2 == m] ; then { for $NomFichier in $1 ; do #$1 est le répertoire $NouveauNom =`echo $ NomFichier | tr 'A-Z' 'a-z'` mv $NomFichier $NouveauNom done } else if[$2 = M] ; then { for $NomFichier in $1 ; do #$1 est le répertoire $NouveauNom =`echo $ NomFichier | tr 'a-z' 'A-Z'` mv $NomFichier $NouveauNom done } else{ Echo option non reconnue } fi fi } fi }
merci d'avance pour votre aide, je ne suis vraiment pas bon en script unix
bonne journée à tous !
Partager