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
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
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
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"
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
cat file1 file2 | sort > file3
set nblig=`cat file3|wc -l
echo "Le fichier file contient $nblig lignes"
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
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 »
}
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.
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
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
}
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
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
}
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
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 !