Aucun espace n'est autorisé autour du =
dans un devoir.
dir="${file%%.*}"
Inversement, un espace blanc est requis dans un test.
if [ -e $dir ]; then
^ ^
En ce qui concerne les améliorations stylistiques, cela ne fait pas de mal de faire un mkdir -p
inutile , vous pouvez donc vous débarrasser du if
déclaration.
Les citations ne sont pas obligatoires dans un devoir, vous pouvez donc les supprimer du dir=
ligne. Les guillemets sont une bonne idée partout ailleurs, alors ne supprimez pas les autres guillemets.
Il serait peut-être bon d'ajouter un .*
supplémentaire à la boucle for. De cette façon, si vous exécutez le script plus d'une fois, il n'essaiera pas de déplacer ces sous-répertoires nouvellement créés. Et une bonne astuce (mais pas nécessairement une amélioration) consiste à raccourcir BR*.* W0*.*
à {BR,W0}*.*
.
for file in {BR,W0}*.*; do
dir=${file%%.*}
mkdir -p "$dir"
mv "$file" "$dir"
done