Tom's Guide > Forum > Programmation > [Résolu] Script bash avec nombre de paramètres variable

[Résolu] Script bash avec nombre de paramètres variable

Forum Programmation : [Résolu] Script bash avec nombre de paramètres variable

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !

Lire la meilleure réponse, apportée par coca25.

Mot :    Pseudo :           
 

Bonjour,

Je suis sous Linux (Mandriva 2008) et totalement débutant en scripts (excepté GFA-Basic sur ancienne plateforme Atari, mais c'est vieux, et assez éloigné du bash).

Je me suis fait le script suivant :

#!/bin/sh
#
# Sauvegarde la piste son sous le nom "01_Audio.wav"
mplayer -ao pcm:file=01_Audio.wav -vo null -vc dummy "$1"
# Encode la video avec le codec lavc (-ffourc DX50 facilite la compatibilité avec lecteur de salon)
mencoder -idx "$1" -o 01_Video.avi -ovc lavc -ffourcc DX50 -nosound
# Réassemble vidéo et audio encodé en mp3
mencoder -oac mp3lame -ovc copy -audiofile 01_Audio.wav 01_Video.avi -o "$1".avi
# efface les fichiers temporaires
rm 01_Audio.wav
rm 01_Video.avi



Nommé "vidavi", copié dans le /usr/local/bin/, il me permet avec la commande
$ vidavi ma\ video.wmv
de convertir celle-ci en "ma video.wmv.avi" compatible avec mon lecteur de salon.
Ça marche bien, et vu mes connaissances, je n'en suis pas peu fier :)

Je souhaiterais mainenant avoir la possibilité de traiter plusieurs videos à la suite, ainsi, avec une commande du genre :
$ vidavi video1.wmv video2.mpg video3.flv"
les videos video1.wmv, video2.mpg et video3.flv seraient converties en video1.wmv.avi, video2.mpg.avi et video3.flv.avi

Bien entendu, le nombre de fichiers à traiter doit être libre...

Est-ce possible facilement a partir de mon script ?

Merci par avance.

A +


Message édité par dandibot le 04-12-2009 à 09:17:00
exemple:

Code :
  1. while [ ! -z "$1" ]
  2. do
  3.   # ton script avec $1
  4.   shift
  5. done

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.
Meilleure réponse

exemple:

Code :
  1. while [ ! -z "$1" ]
  2. do
  3.   # ton script avec $1
  4.   shift
  5. done

------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Merci coca25

encore toi qui me dépanne ! ;)

coca25 a écrit :

exemple:

Code :
  1. while [ ! -z "$1" ]
  2. do
  3.   # ton script avec $1
  4.   shift
  5. done



Nickel !
Comme j'aime bien comprendre (pour éviter de demander à chaque fois) :

La syntaxe du "while", pas claire (pour moi), je suppose qu'elle signifie "tant qu'il existe des variables $1"

Le "done" renvoie au "do".

Le "shift" sert à quoi ?

Encore merci,
A +

Répondre à Geis007

et encore, c'est une chance, ca fait longtemps que j'ai pas jeté de coup d'oeil à cette section :)

 

"while expression" ==> tant que expression retourne 0
[ ] ==> c'est la commande "[" qui est un lien vers test , ca permet de faire des... tests
! => negation
-z => retourne 0 si ce qui suit est vide
les "" sont importants parce que si $1 est vide, ca génére une erreur
le shift enlève le 1er argument et déplace les autres

 

les arguments sont dans $1 $2 etc...
après un shift, $2 devient $1 etc...


Message édité par coca25 le 08-10-2008 à 21:03:53
------------------------------ Ne pas oublier le [resolu] pour finir le sujet.
Penser à voir les tutos, ca peut aider!
Répondre à coca25

Sinon, il y a $# pour savoir le nombre de paramètres. ;)

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Tom's Guide > Forum > Programmation > [Résolu] Script bash avec nombre de paramètres variable
Aller à :

Il y a 1588 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens