Bonjour à tous,
Je suis entrain d’écrire un petit script très simple pour automatiser des conversions de fichiers musicaux en mp3 avec ffmpeg. C’est un script interactif qui exécute des commandes selon les réponses que je lui apporte. Il est structuré en trois étapes, Conversion des fichiers, renommage des fichiers pour en faire disparaître l’ancienne extension (ex : $file.m4a.mp3 -----> $file.mp3), puis supprimer les fichiers d’origine (autre que mp3).
Voici comment se déroule l’étape de “renommage” :
echo -e "Extension à supprimer ?" read extension rename 's/\.$extension.mp3$/\.mp3/' *.$extension.mp3
Cette dernière ligne ne fonctionne pas, même en dehors du script par utilisation en shell simple. Il semble que l’utilisation de la fonction $ ne soit pas compatible, voici le message d’erreur qui m’est retourné : Global symbol “$extension” requires explicit package name at (user-supplied code). En regardant sur internet, je trouve bien de la doc, mais ça concerne surtout du perl…
Quelqu’un saurait-il rendre cette commande fonctionnelle ?
Si besoin est voici le script complet. Je vous demande votre indulgence ceci est d’un niveau débutant.
echo -e "\E[36;40mLes fichiers à convertir sont :"
echo -e $1
echo -e $2
echo -e $3
echo -e $4
echo -e $5
echo -e $6
echo -e $7
echo -e $8
echo -e $9
echo -e ${10}
echo -e ${11}
echo -e ${12}
echo -e ${13}
echo -e ${14}
echo -e ${15}
echo -e "Voulez-vous lancer la conversion ?"
read choix
case $choix in
[OoYy]*) ffmpeg -i "$1" "$1.mp3"
ffmpeg -i "$2" "$2.mp3"
ffmpeg -i "$3" "$3.mp3"
ffmpeg -i "$4" "$4.mp3"
ffmpeg -i "$5" "$5.mp3"
ffmpeg -i "$6" "$6.mp3"
ffmpeg -i "$7" "$7.mp3"
ffmpeg -i "$8" "$8.mp3"
ffmpeg -i "$9" "$9.mp3"
ffmpeg -i "${10}" "${10}.mp3"
ffmpeg -i "${11}" "${11}.mp3"
ffmpeg -i "${12}" "${12}.mp3"
ffmpeg -i "${13}" "${13}.mp3"
ffmpeg -i "${14}" "${14}.mp3"
ffmpeg -i "${15}" "${15}.mp3"
echo -e "Conversion terminées"
echo -e "Corriger les noms des fichiers ? (suppression ancienne extension)";;
[Nn]*) exit 0;;
esac
read reponse
case $reponse in
[OoYy]*) echo -e "Extension à supprimer ?"
read extension
rename 's/\.$extension.mp3$/\.mp3/' *.$extension.mp3
echo -e "Supprimer les anciens fichiers ?";;
[Nn]*) echo -e "Les fichiers n'ont pas été renommé"
exit 0;;
esac
read volonte
case $volonte in
[OoYy]*) rm *.$extension
echo -e "Fichiers supprimé"
exit 0;;
[Nn]*) exit 0;;
esac
Merci.