Bonjour,

Je rencontre quelques difficultés sur la réalisation d'un script de renommage (boule for).
Le renommage s'effectue bien, par contre c'est au niveau des arguments de tests que je rencontre le problème.

La finalité de l'exercice :
exécuter un script depuis un répertoire "A" puis aller jusqu’à une arborescence "B" et, entrer dans le répertoire passer en argument et modifier les noms de fichiers via une boucle for.
S'assurer que le script prendra deux arguments en paramètres (pas moins). Vérifier que le premiers argument passé en paramètre est un répertoire, et, que le le second n'est pas vide.

Ma condition de test ne semble pas être correctement discriminante car quoi que je fasse la boucle est exécutée voir (test1 & 2)
Pourrais-vous m'aider à corriger cette anomalie afin que le test des correctement réalisé avant passage à la boucle. ?

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
34
35
36
script
#!/bin/bash
# boucle_for
# From="/home/linuxkubuntu/"
goTo="Downloads/"
cd $goTo
pwd
# || ou-que
# verifier si argument recu et valide
if [[ $# -ne 2 && ! -d "$1" ]] ; then
echo "Usage : $0 argument invalide"
exit 1
fi
 
cd $1
pwd
 
for i in *.jpg
do
# renomme les fichiers $i
echo "$i => $2_$i"
# mv "$i" "$2$i"
 
 
# déplacement de l'archive vers le volume MX_500_HD
 
# suppression du repertoire source
 
done
 
 
# compression du dossier
echo "step2 ------------------ compression"
# tar cvfz ${dirSource}/Downloads/testShar.gtar.gz Sharon_Step_Mon/ 2>&1 | tee /tmp/myFileToAnnalizeLater.txt
# zip -r testShar.tar.gz $1
# zip -r nom_de_larchive.zip dossier

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
test_1

linuxkubuntu@node2:~$ bash -x boucle_img.sh SSM NewName
+ goTo=Downloads/
+ cd Downloads/
+ pwd
/home/linuxkubuntu/Downloads
+ [[ 2 -ne 2 ]]
+ cd SSM
+ pwd
/home/linuxkubuntu/Downloads/SSM
+ for i in *.jpg
+ echo '1001597.jpg => NewName_1001597.jpg'
1001597.jpg => NewName_1001597.jpg
+ for i in *.jpg
+ echo '1001598.jpg => NewName_1001598.jpg'
1001598.jpg => NewName_1001598.jpg
+ for i in *.jpg
+ echo '1001599.jpg => NewName_1001599.jpg'
1001599.jpg => NewName_1001599.jpg
+ echo 'step2 ------------------ compression'
step2 ------------------ compression

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
test_2
linuxkubuntu@node2:~$ bash -x boucle_img.sh SSM
+ goTo=Downloads/
+ cd Downloads/
+ pwd
/home/linuxkubuntu/Downloads
+ [[ 1 -ne 2 ]]
+ [[ ! -d SSM ]]
+ cd SSM
+ pwd
/home/linuxkubuntu/Downloads/SSM
+ for i in *.jpg
+ echo '1001597.jpg => _1001597.jpg'
1001597.jpg => _1001597.jpg
+ for i in *.jpg
+ echo '1001598.jpg => _1001598.jpg'
1001598.jpg => _1001598.jpg
+ for i in *.jpg
+ echo '1001599.jpg => _1001599.jpg'
1001599.jpg => _1001599.jpg
+ echo 'step2 ------------------ compression'
step2 ------------------ compression

par avance merci à tous.