j'écris juste un script pour changer les noms de fichiers de minuscule en majuscule :
#!/bin/bash -x
myscriptname=`basename $0`;
for i in `ls -A`
do
if [ $i = $myscriptname ];
then
echo "Sorry, can't rename myself!"
elif [ $i != $myscriptname ];
newname=`echo $i | tr a-z A-Z`
mv $i $newname
fi
done
Bash me donne toujours l'erreur de sortie sur le fi , l'output du debug
++ basename ./tr1.sh
+ myscriptname=tr1.sh
./tr1.sh: line 15: syntax error near unexpected token `fi'
./tr1.sh: line 15: ` fi'
J'ai beau regarder je ne vois pas ce qu'il me reproche . Une idée ?
# then
Posté par jm trivial (site web personnel) . Évalué à 3.
[^] # Re: then
Posté par eastwind☯ . Évalué à 2.
[^] # Re: then
Posté par gaaaaaAab . Évalué à 3.
[^] # Re: then
Posté par NeoX . Évalué à 5.
car finalement la 2e condition ne sert qu'a confirmer qu'on n'est pas dans le premier cas
# y'a pas que ça...
Posté par nodens . Évalué à 7.
for i in *; do
[ "$i" = "$myscriptname" ]
...
(je passe sur le fait que je suis contre l'emploi d'une variable "i" quand il n'y a pas d'incrément, on va dire que c'est juste cosmétique).
Un autre problème : comment tu fais si tu as un fichier qui est nommé comme ton script, mais que tu es en train de travailler sur un autre répertoire ? Ce fichier ne sera pas renommé, il faut prévoir ce cas aussi.
Cela dit, une fois que tu te seras bien amusé à écrire ton script et à imaginer ce qui pourrait mal se passer, tu pourras utiliser rename ;-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.