Se connecter / S'enregistrer

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

Solutions (5)
Tags :
  • Script
  • Programmation
, Grand Gn0u |
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 +
Contenus similaires
Meilleure solution
partage
|
exemple:
  1. while [ ! -z "$1" ]
  2. do
  3. # ton script avec $1
  4. shift
  5. done
  • Commenter cette solution |
Score
0
òh
òi
, Grand Gn0u |
Ok merci à vous deux
  • Commenter cette réponse |
Score
0
òh
òi
|
Sinon, il y a $# pour savoir le nombre de paramètres. ;) 
  • Commenter cette réponse |
Score
0
òh
òi
|
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...
  • Commenter cette réponse |
Score
0
òh
òi
, Grand Gn0u |
Merci coca25

encore toi qui me dépanne ! ;) 
coca25 a dit :
exemple:
  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 +
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS