Exo sur le shell-script
Résolu/Fermé
A voir également:
- Exo sur le shell-script
- Script vidéo youtube - Guide
- Classic shell windows 10 français - Télécharger - Personnalisation
- Script bat - Guide
- Lancer script python linux - Forum Ubuntu
- Executeur de script - Télécharger - Édition & Programmation
3 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
14 janv. 2008 à 19:05
14 janv. 2008 à 19:05
Salut,
Si mais il y a beaucoup à faire et beaucoup à dire...
Voici quelques améliorations par rapport à ton script de base et quelques suggestions.
Il commence par verifier qu'on lui passe bien 2 parametres
qui sont des repertoires.
Suggestions :
Ensuite il va parcourir le premier et pour chaque element :
Si tu veux parcourir ton répertoire et récupérer chaque nom de fichier mieux vaut privilégier cette syntaxe :
L'idéal étant de récupérer chaque nom de fichier dans une variable pour pouvoir la comparer ensuite :
si cet element existe dans rep2
A insérer à la place des "..." ci-dessus
il regarde si il est un fichier :
Si oui il compare les contenus avec la commande cmp
Si mais il y a beaucoup à faire et beaucoup à dire...
Voici quelques améliorations par rapport à ton script de base et quelques suggestions.
Il commence par verifier qu'on lui passe bien 2 parametres
if [ "$#" != 2 ] then echo "Utilisation : $0 repertoire_1 repertoire_2" exit 1 fi
qui sont des repertoires.
if ! [ -d "$1" -a -d "$2" ] then echo "Les deux arguments doivent être des répertoires" exit 2 fi
Suggestions :
Ensuite il va parcourir le premier et pour chaque element :
Si tu veux parcourir ton répertoire et récupérer chaque nom de fichier mieux vaut privilégier cette syntaxe :
for f in $1/* ; do basename "$f" ; done
L'idéal étant de récupérer chaque nom de fichier dans une variable pour pouvoir la comparer ensuite :
for f in $1/* do file=$(basename "$f") ... ... ... done
si cet element existe dans rep2
A insérer à la place des "..." ci-dessus
grep "$file" "$2" retval=$? if [ "$retval" = 0 ] then ...
il regarde si il est un fichier :
if [ -f "$file" ] then ...
Si oui il compare les contenus avec la commande cmp
else cmp "${1}${file}" "${2}${file}"etc...