Voilà, je rame un peu dans la rédaction de mon premier script : c pas tout rose !
Premier problème : le script fonctionne dans un terminal, si je l'applique à un fichier situé dans le répertoire courant. Si je démarre le script en sélectionnant un fichier (clic droit + script nautilus) le script s'exécute mais le 'mv' ne fonctionne pas. WHY ?
Voici le script :
# Récupérer le nom du fichier sélectionné et son extension
name=`echo "$1" | cut -d"." -f1`
extend=`echo "$1" | cut -d"." -f2`
file0=`echo "$name.$extend" | sed 's/ /\?/g'`
file1=`zenity --entry --title="Renommer le fichier?" --text="Renommez le fichier "$1", s'il vous plaît" --entry-text="$file0"| sed 's/ /\-/g'`
mv "$file0" "$file1.$extend"
Deuxième problème :
# Récupération de la durée du fichier.
if [ "$extend"="mp3" ] ; then
MM=`mp3info -x $file0 | grep Length | cut -d ":" -f2`
SS=`mp3info -x $file0 | grep Length | cut -d ":" -f3`
elif [ "$extend"="ogg" ] ; then
MM=`ogginfo $file0 | grep Playback | cut -d " " -f3 | cut -d "." -f1`
else
zenity --info --title="Erreur" --text="Le fichier n'est pas conforme." ; exit
fi
zenity --info --title "Résultat" --text "Durée du fichier : $MM m $SS s."
Je dois récupérer la durée de fichier audio. Mon problème c'est que pris séparément ces instructions fonctionnent mais là, dans le script, rien !
Je ne crois pas que ce soit le même problème de chemin puisque ça fonctionne si je commente toutes les instructions et ne retiens que, par exemple, le cas du mp3, appliqué à un fichier mp3.
(Je sais, faut pas être désespéré, mais quand même, au secours!)
# Erreur de débutant
Posté par hdiamant . Évalué à 1.
sed 's/ /\?/g'
dans la 3ème ligne !
Par contre, j'ai encore besoin d'aide pour le problème numéro 2 demeure !
(à vrai dire, je n'ai pas tout à fait compris pourquoi ça ne marchait pas avec sed dans mon problème 1, si quelqu'un peux m'expliquer !)
Merci d'avance !
[^] # Re: Erreur de débutant
Posté par NeoX . Évalué à 1.
s / ton espace / le symbole ? / g
[^] # Re: Erreur de débutant
Posté par hdiamant . Évalué à 1.
C'était un morceau de code réellement inutile.
Pour mon deuxième problème, j'ai corrigé la dernière ligne (signe = manquant après --text) mais cela ne change rien.
Ai-je manqué quelque chose dans la logique du if ?
[^] # Re: Erreur de débutant
Posté par hdiamant . Évalué à 1.
Je mets ici le code qui me renvoie les minutes et les secondes des fichiers mp3 ou ogg que j'utilise.
# Récupération de la durée du fichier.
if
[ "$extend" = "mp3" ] ; then
MM=`mp3info -x "$file0" | grep Length | cut -d ":" -f2`
SS=`mp3info -x "$file0" | grep Length | cut -d ":" -f3`
elif
[ "$extend" = "ogg" ] ; then
MM=`ogginfo "$1" | grep Playback | cut -d " " -f3 | cut -d "m" -f1`
SS=`ogginfo "$1" | grep Playback | cut -d " " -f3 | cut -d ":" -f2 | cut -d "." -f1`
else
zenity --info --title="Erreur" --text="Le fichier n'est pas conforme."
fi
zenity --info --title "Résultat" --text="Durée du fichier : $MM m et $SS s."
cp "$1" "$groupfile-$file1.$extend-CQ"
Au passage, que pensez-vous de ma manière de récupérer les minutes et secondes? Elle me paraît peu élégante mais je crois qu'elle fonctionne (pour le moment) et qu'elle me permettra d'envoyer facilement ces données vers une base mysql.
Dites-moi si je me trompe !
[^] # Re: Erreur de débutant
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 2.
Sous linux elles n'existent que pour l'utilisateur ou presque.
utilise plutot la commande 'file' pour savoir ce que contiennent tes fichiers.
et fait attention, si l'argument fourni a ton script est un chemin de fichier complet
dont un dossier contient un point, un chemin relatif (eg ../file.mp3) ou même
plus simplement si ton fichier contient plusieurs point (toto.tata.mp3) bein ton script ne marchera pas (du moins pas comme tu l'attend)
[^] # Re: Erreur de débutant
Posté par hdiamant . Évalué à 1.
Par contre j'ai un souci avec les paths. Je n'y comprends rien. Si quelqu'un avait la gentillesse de m'en dire plus sur par exemple : $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS et surtout sur la manière dont je peux trouver le path du fichier sélectionné ! Car c'est là que coince mon script maintenant.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.