++ basename ./tr2.sh
+ myscriptname=tr2.sh
./tr2.sh: line 16: syntax error near unexpected token `fi'
./tr2.sh: line 16: ` fi'
Mais il me retourne toujours la meme erreur malgrès mes recherche sur google
quelqu'un pourrait-il m'expliquer ?
#/bin/bash -x
myscriptname=`basename $0`;
#exit;
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
#END
# if then else
Posté par Alex . Évalué à 4.
si tu mets elif, ca correspond à un "else if", il te faut donc un then à la suite
si tu mets else à la place de elif, ça marche aussi
[^] # Re: if then else
Posté par eastwind☯ . Évalué à 2.
[^] # Re: if then else
Posté par eastwind☯ . Évalué à 2.
[^] # Re: if then else
Posté par tipmeabout . Évalué à 4.
if [ $i = $myscriptname ];
alors que ls -A renvoie les extensions et que $myscriptname n'en contient pas à cause du basename.
Je te propose cette écriture, non testée vu l'heure:
#/bin/bash -x
for i in `ls -A`
do
if [ $i = $0 ];
then
echo "Sorry , can't rename myself!"
else
newname=` echo $i | tr a-z A-Z `
mv $i $newname
fi
done
ou alors, plus simple, sans être un script, en te mettant en console dans le répertoire où sont les fichiers à modifier:
rename ’y/a-z/A-Z/’ *
# source ?
Posté par JJD . Évalué à 1.
basename ne supprime pas le suffixe, sauf si on lui précise.
Le problème ici, c'est l'instruction "source" : le script tr2.sh n'est pas vraiment exécuté. En fait son contenu est lu par le shell appelant, et c'est ce contenu qui est exécuté par le script appelant et dans ce cas, $0 vaut "bash".
Mais ici, source ne sert à rien : on l'utilise quand on veut récupérer des variables modifiées dans le script appelé.
Une autre remarque concernant ton script : ce serait bien de vérifier que le nom n'est pas déjà en majuscule, pour éviter l'affichage d'erreurs.
A+
JJD
# Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.