J'écris un script simple pour itérer sur tous les fichiers m4a dans un dossier et les encoder en mp3. Je veux faire l'encodage des fichiers dans différents threads pour augmenter la vitesse d'exécution et tirer parti de tous les cœurs de mon PC, donc j'envoie les tâches en arrière-plan, merci de me conseiller si c'est la bonne approche. De toute façon, je reçois un Aucune erreur de fichier ou direcory pour chaque fichier que je veux encoder, même si le fichier est là; et la chose amusante est que si je copie exactement la même instruction à un terminal, il sera exécuté correctement. Pouvez-vous s'il vous plaît m'aider à découvrir ce que je fais mal?Script Bash ne trouvant pas de fichiers
Merci d'avance.
#!/bin/bash
function encode {
echo "<<<<<<<<<<<encode>>>>>>>>>>>>>>>>"
cd "$1"
find . -mindepth 1 -maxdepth 1 | while read f
do
if [ -f "${f}" ]
then
if [ ${f: -4} == ".m4a" ]
then
if [ ! -d "converted" ]
then
mkdir converted
fi
newPath="${f%m4a}mp3"
echo "ffmpeg -i \""$f"\" -ac 2 -b:a 320k -y \""$newPath"\" </dev/null >/dev/null &"
ffmpeg -i \""$f"\" -ac 2 -b:a 320k -y \""$newPath"\" </dev/null >/dev/null &
fi
elif [ -d "${f}" ]
then
echo "folder $f"
encode "$f"
fi
done
}
encode "$1"
Vous avez trop de guillemets. – chepner