Pages : 1
#1 Le 07/08/2013, à 04:38
- alfirdaous
[RESOLU]Petit script bash
Bonjour,
C'est quoi le premier pas de realiser un petit script avec des variables, par exemple cette commande:
ffmpeg -i [NOM_FICHIER] -strict experimental -vf "drawtext=fontfile='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf':text='www.alfirdaous.com':x=[X]:y=[Y]:fontsize=[TAILLE]:fontcolor=[COULEUR]" -vcodec libx264 -preset medium -crf 24 -acodec copy font_FreeSans.mp4
Alors je cherche a mettre un petit script qui demande les informations entre [], autrement dit:
Veuillez entrere un nom du fichier:
ICI ON MET LE NOM apres on passe a la 2eme, ainsi de suite.
Merci
Dernière modification par alfirdaous (Le 12/08/2013, à 07:46)
Hors ligne
#2 Le 07/08/2013, à 05:28
- pingouinux
Re : [RESOLU]Petit script bash
Bonjour,
Voir help read
#!/bin/bash
read -p "Veuillez entrer le nom du fichier : " NOM_FICHIER
read -p "Veuillez entrer X : " X
read -p "Veuillez entrer Y : " Y
read -p "Veuillez entrer la TAILLE : " TAILLE
read -p "Veuillez entrer la COULEUR : " COULEUR
ffmpeg -i "$NOM_FICHIER" -strict experimental -vf "drawtext=fontfile='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf':text='www.alfirdaous.com':x=$X:y=$Y:fontsize=$TAILLE:fontcolor=$COULEUR" -vcodec libx264 -preset medium -crf 24 -acodec copy font_FreeSans.mp4
Hors ligne
#3 Le 07/08/2013, à 15:07
- nesthib
Re : [RESOLU]Petit script bash
Ou plus simplement, utilise les arguments du script :
#!/bin/bash
ffmpeg -i "$1" -strict experimental -vf "drawtext=fontfile='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf':text='www.alfirdaous.com':x=$2:y=$3:fontsize=$4:fontcolor=$5" -vcodec libx264 -preset medium -crf 24 -acodec copy font_FreeSans.mp4
à lancer de la sorte :
./nom_du_script.sh "nom du fichier" 123 456 12 #123456
pour avoir :
ffmpeg -i "nom du fichier" -strict experimental -vf "drawtext=fontfile='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf':text='www.alfirdaous.com':x=123:y=456:fontsize=12:fontcolor=#123456" -vcodec libx264 -preset medium -crf 24 -acodec copy font_FreeSans.mp4
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#4 Le 07/08/2013, à 15:24
- Watael
Re : [RESOLU]Petit script bash
salut,
on peut aussi utiliser des variables environnementales:
$ cat ./myScript
#!/bin/bash
echo "$premiR - $deuxiM - $troisiM"
$
$ premiR="bla bla" deuxiM="une chose" troisiM="puis une autre" ./myScript
bla bla - une chose - puis une autre
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 11/08/2013, à 05:12
- alfirdaous
Re : [RESOLU]Petit script bash
merci a vous, chacun a sa propre methode, je choisissais la plus simple
EDIT:
Un petit changement, pour le traitement de plusieurs fichiers, on utilise xargs:
#!/bin/bash
read -p "Starting from : " Start
read -p "Ending by : " End
read -p "Timing : " Timing
read -p "Input file name : " Input
read -p "Input file Ext : " InExt
read -p "Output file name : " Output
read -p "Output file Ext : " OutExt
printf "%s\n" {"$Start".."$End"} | xargs -i ffmpeg -itsoffset -"$Timing" -i "$Input"{}."$InExt" -vcodec mjpeg -vframes 1 -an -f rawvideo -s 640x480 "$Output"_{}."$OutExt"
Resultat:
font_FreeSans{1..3}.mp4: No such file or directory
Dernière modification par alfirdaous (Le 11/08/2013, à 05:37)
Hors ligne
#6 Le 11/08/2013, à 06:28
- pingouinux
Re : [RESOLU]Petit script bash
Bonjour,
Et comme ceci ?
seq "$Start" "$End" | xargs -i ffmpeg ………
Hors ligne
#7 Le 12/08/2013, à 01:56
- alfirdaous
Re : [RESOLU]Petit script bash
merci pingouinux, c'est quoi la diffrence entre seq et printf?
Hors ligne
#8 Le 12/08/2013, à 02:12
- Watael
Re : [RESOLU]Petit script bash
salut,
le problème ne vient pas de printf :
le Développement des accolades est effectué avant Développement des variables.
Or, celui-ci n'ayant pas pas d'entiers sur lesquels se baser, il n'est pas effectué, et est affiché littéralement, puis, les variables sont développées.
Dernière modification par Watael (Le 12/08/2013, à 02:13)
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 12/08/2013, à 07:20
- pingouinux
Re : [RESOLU]Petit script bash
c'est quoi la diffrence entre seq et printf?
man seq printf
Hors ligne
#10 Le 12/08/2013, à 07:46
- alfirdaous
Re : [RESOLU]Petit script bash
merci pingoulnux
Hors ligne