Bash

Résolu
bikette -  
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Voila je me retrouve à corriger un bash, que voici

#!/bin/bash
# Vérification du paramètre (dossier dico.txt)
# S'il est absent, on signale à l'utilisateur de choisir le dossier dico.txt 
if [ -z $1 ]
then 
 echo 'veuillez rentrer dico.txt en paramètre svp'
else
 sortie=$1
fi
# Vérification s'il existe bien un dossier dico.txt
if [ -f $1 ]
then
 for lettre in {A..Z}
 do
  #première mission: combien de fois est utilisée chaque lettre
  printf "%s - %s -%s\n" $(grep -ic $lettre "$1") $2 $lettre
  #deuxième mission: indication de la 
  somme des mots du dictionnaire
  
 done | sort -rn
else
 echo 'dossier non valide'
fi


Le souci c'est quand je l’exécute il m'affiche n'importe quoi.

Pour la vérification de la présence d'un fichier je ne comprend pas les if

Quelqu'un peut m'éclairer ?


1 réponse

mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
Bonjour,

Les tests bash sont décrits ici (voir section "Les tests"):
https://openclassrooms.com/fr/courses/43538-reprenez-le-controle-a-laide-de-linux/43394-les-conditions

Le premier test contrôle si la chaîne $1 (premier argument passé au script) est non vide.
Le second contrôle que $1 est un chemin correspondant à un fichier régulier.

Je peux déjà te dire qu'il y a plusieurs fautes :
- les arguments $1, etc devraient être écrits "$1" pour prendre en charge les espaces correctement.
- le programme devrait finir par
exit 0

- si le nombre d'argument est incorrect il devrait déclencher
exit 1
(ou une valeur non nulle), car affecter la variable sortie n'a aucune utilité dans ce script.
- la deuxième ligne du second commentaire "somme des mots..."... n'est pas commentée !
- plutôt qu'un test "-z" pour contrôler le nombre d'argument il faudrait contrôler la valeur de $#.
-
grep -ic
compte le nombre de lignes comportant un caractère donné, pas le nombre d'occurrences de ce caractère.

Bonne chance
0
bikette
 
merci de ta réponse detaillée
0
mamiemando Messages postés 33769 Date d'inscription   Statut Modérateur Dernière intervention   7 878
 
De rien, bonne continuation !
0