Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/07/2011, à 17:11

caracolito

Comment Transformer commandes en script

Bonjour,

J'ai les deux commandes ci-dessous que je voudrai transformer en un script que j'appelerai: Stabiliser video

transcode -J stabilize -i input.file
transcode -J transform -i input.file -y xvid -o output-S.file

le probleme est que je ne sais pas comment faire pour que les fichiers input.file et output-S.file soient crées en fonction de la video sur laquelle j'ai cliqué.

merci de votre aide

Pierre


La mente es igual que un Paracaidas, Solo sirve si se abre . A.Eistein

Hors ligne

#2 Le 10/07/2011, à 17:52

wido

Re : Comment Transformer commandes en script

Bonjour, essaye ça:

#!/bin/bash
#
for i in "$@"
do
    transcode -J stabilize -i "$i"
        transcode -J transform -i "$i" -y xvid -o "${i%.*}".xvid
done

http://doc.ubuntu-fr.org/nautilus_scripts

Hors ligne

#3 Le 10/07/2011, à 18:25

caracolito

Re : Comment Transformer commandes en script

Merci Wido,

J'ai essayé, ca fonctionne a part que:

mes fichiers en sortie on une extension .xvid et moi je voudrai une extension nomfichierorigina-S.extensionoriginale
je n'arrive pas a me debrouiller dans ce charabia "${i%.*}".xvid


La mente es igual que un Paracaidas, Solo sirve si se abre . A.Eistein

Hors ligne

#4 Le 10/07/2011, à 20:57

wido

Re : Comment Transformer commandes en script

#!/bin/bash
#
for i in "$@"
do
    transcode -J stabilize -i "$i"
        transcode -J transform -i "$i" -y xvid -o "$i"
done

tout simplement smile

Hors ligne

#5 Le 10/07/2011, à 21:49

Bousky

Re : Comment Transformer commandes en script

À la place de

for i in "$@"
do
        …
done

je préfère

while "$1" ; do
        …
        shift
done

(et remplacer $i par $1 dans la boucle)
« for » n'aime pas trop les espaces (dans les noms de fichiers ici) et je ne suis pas sûr du comportement de "$@". Je dis ça mais ça peut très bien marcher, à voir…


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#6 Le 10/07/2011, à 21:55

wido

Re : Comment Transformer commandes en script

J'utilise ça pour convertir des vidéos et ça fonctionne très bien. wink

Hors ligne

#7 Le 10/07/2011, à 21:56

Bousky

Re : Comment Transformer commandes en script

Tu as testé avec des fichiers contenant des espaces ?


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#8 Le 12/07/2011, à 16:44

johndo

Re : Comment Transformer commandes en script

Bousky a écrit :

À la place de

for i in "$@"
do
        …
done

je préfère

while "$1" ; do
        …
        shift
done

(et remplacer $i par $1 dans la boucle)
« for » n'aime pas trop les espaces (dans les noms de fichiers ici) et je ne suis pas sûr du comportement de "$@". Je dis ça mais ça peut très bien marcher, à voir…

ça revient exactement au même !
"$@" équivant à "$1" "$2" ..."$j" (avec j=$#)
l'utilisation des " avec $@ protège les espaces et sauts de ligne...

mais la méthode la plus condensée est :

#!/bin/bash
for i
do
  ...
done

lorsque le "in" de "for" n'est pas précisé, la liste des arguments positionnels est utilisée.

Hors ligne

#9 Le 12/07/2011, à 17:13

Bousky

Re : Comment Transformer commandes en script

johndo a écrit :

mais la méthode la plus condensée est :

#!/bin/bash
for i
do
  ...
done

lorsque le "in" de "for" n'est pas précisé, la liste des arguments positionnels est utilisée.

Bon à savoir ! Et je préfère aussi éviter de jouer avec $IFS (qui n'est pas une commande mais une variable) quand il existe un autre moyen…

Sinon gardons en mémoire que comment faire la boucle n'est pas exactement le sujet initial…


Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#10 Le 12/07/2011, à 17:58

wido

Re : Comment Transformer commandes en script

Au final j'avais aussi bon?

Hors ligne