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.

#1876 Le 25/09/2015, à 21:31

abach

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Voici l'output :

avconv version 11.2-6:11.2-1, Copyright (c) 2000-2014 the Libav developers
  built on Jan 18 2015 05:12:33 with gcc 4.9.2 (Ubuntu 4.9.2-10ubuntu2)
[mpeg4 @ 0x1f59780] looks like this file was encoded with (divx4/(old)xvid/opendivx) -> forcing low_delay flag
Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, avi, from '/home/abach/Vidéos/avions/Concorde.Air-France.Mai.2003.avi':
  Duration: 00:38:29.48, start: 0.000000, bitrate: 2034 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 640x480 [PAR 1:1 DAR 4:3], 25 fps, 25 tbn, 30k tbc
    Stream #0.1: Audio: mp3, 24000 Hz, 2 channels, s16p, 56 kb/s
[scale @ 0x1f6e880] The <w>:<h>:flags=<flags> option syntax is deprecated. Use either <w>:<h>:<flags> or w=<w>:h=<h>:flags=<flags>.
Output #0, flv, to '/home/abach/Vidéos/essai/Concorde.Air-France.Mai.2003.flv':

Il ne me crée pas le sous-répertoire.


Les chiens vous regardent tous avec vénération. Les chats vous toisent tous avec dédain. Il n’y a que les cochons qui vous considèrent comme leurs égaux. - Winston Churchill
Je suis parrain Linux

Hors ligne

#1877 Le 25/09/2015, à 21:42

tiramiseb

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

tu n'as pas donné les valeurs des différentes variables et ça ne correspond pas à ton script que tu as montré plus haut...

Hors ligne

#1878 Le 29/09/2015, à 08:16

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonsoir à tous


Ayant découvert "MOC" je voudrais faire un script pour le lancer ainsi que son conky.

J'ai ajouté un racourci dans Lancelot ainsi que dans le gestionnaire de taches à icones et mocp se lance bien.

J'ai utilisé mon script pour audacious et modifié en conséquence mais j'ai un souci . Le script ne lance que le conkyrc mais pas moc je suis obliger de le lancer à la mano , et une fois moc et le conky lancés le script les  ferme  tout les deux .

Voici le script en question si quelqu'un @ une idée .Merci d'avance

 
#!/bin/bash

PROG_NAME1="conky -c /home/$USER/.conky/moc/conkyrc"	# Nom du programme à  démarrer/arrêter.
PROG_NAME2="/usr/bin/mocp" # Nom du programme à  démarrer/arrêter.

PROCESSPID1=$(pgrep -f /home/$USER/.conky/moc/conkyrc)	# Récupère le PID du processus.
PROCESSPID2=$(pgrep -f "usr/bin/mocp")	# Récupére le PID du processus.


if [[ "$PROCESSPID1" != ""  && "$PROCESSPID2" != "" ]]; then	# Si les deux processus existe alors on le(s) kill.
        kill $PROCESSPID1 && echo "Stop $PROG_NAME1 (PID: $PROCESSPID1)"
        kill $PROCESSPID2  && echo "Stop $PROG_NAME2 (PID: $PROCESSPID2)"
else	# Si aucun processus on démarre le programme.
        kill $PROCESSPID1 
        $PROG_NAME1 & 
        echo "Start $PROG_NAME1"
        kill $PROCESSPID2  
        $PROG_NAME2 & 
        echo "Start $PROG_NAME2"
        if [[ "$PROCESSPID1" == ""  || "$PROCESSPID2" == "" ]]; then	# Si un des processus n'existe pas alors on le(s) kill.
                kill $PROCESSPID1 && echo "Stop $PROG_NAME1 (PID: $PROCESSPID1)"
                kill $PROCESSPID2  && echo "Stop $PROG_NAME2 (PID: $PROCESSPID2)"
                echo "Il y a eu un souci au lancement tout a été coupé"
        fi
fi

exit 0

@+

Hors ligne

#1879 Le 29/09/2015, à 08:29

tiramiseb

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Salut loutch,

Pour les "echo" de ton script, ça donne quoi ? Qu'est-ce qui s'affiche, qu'est-ce qui ne s'affiche pas ?

Hors ligne

#1880 Le 29/09/2015, à 10:15

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

salut tiramiseb

Conky et moc se lancent je viens de les voire  en konsole lors d'un top ,mocp est à 0.3% mais la konsole n'est pas visible il ni a que le serveur qui est lancé .

Il faudrait que le script lance moc avec son interface dans la konsole mais j'arrive pas à trouvé comment faire .

En faite je viens de découvrir que le script fonctionne mais moc n'est pas visible sur le bureau.

@+

Dernière modification par loutch (Le 29/09/2015, à 10:17)

Hors ligne

#1881 Le 29/09/2015, à 11:21

tiramiseb

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Ok, donc si j'ai bien compris, ton script fonctionne parfaitement bien mais tu veux exécuter la commande mocp dans un terminal (tu écris "konsole", donc j'imagine que tu es sous KDE et que tu veux utiliser Konsole) qui s'ouvrirait lorsque ce script s'exécute.

Ça devrait fonctionner avec ça

PROG_NAME2="/usr/bin/konsole -e /usr/bin/mocp" # Nom du programme à  démarrer/arrêter.

Hors ligne

#1882 Le 29/09/2015, à 12:06

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Re

OOOUUUUUUUUUUUUUUUAAAAAAAAAAAIIIIIIIIII

SUPER t'es the King ça fonctionne au poil

encore MERCI et


@+

En plus je viens d'apprendre un truc .

Dernière modification par loutch (Le 29/09/2015, à 12:07)

Hors ligne

#1883 Le 03/10/2015, à 08:32

Yvance77

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour,

Je recherche de l'aide pour un script qui me permettrait de mettre tous mes fichiers en lettres majuscules dans un dossier et incluant des sous-répertoires. Mais dans chaque sous-répertoires il y a une exclusion c'est à dire qu'il y a une fichier qui porte toujours le même nom et qui ne devra pas être réécrit.
.
Et truc supplémentaire - car il s'agit de fichier "audio flac." c'est qu'en plus cette nouvelle écriture se fasse dans les TAG audio. Si pas possible pas grave un soft comme easytag le fera.

L'arborescence est simple =

le dossier principal = "multimédia"
un autre dossier = FLAC
des sous dossiers = ALBUMS DES ARTISTES
dans chacun = tous les titres audio à renommer + un fichier à ne pas toucher

Cela représente peu ou prou 36 000 titres quand même

Merci de votre aide


A trop vouloir faire de l'économie un idéal, nous faisons l'économie de l'Idéal !
Manjaro 20.01 - Mate 64 bits
CM : MSI B550 Tomahawk -- Proc : Ryzen 3600 6 coeurs -- CG : ATI Radeon RX550 -- RAM : Kingstone DDR4

Hors ligne

#1884 Le 08/11/2015, à 23:37

Compte anonymisé

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Mieux vaut tard que jamais !

#!/bin/bash
dossier="/tondossier"
exclusion="nomfichier"
for a in $(find "$dossier" ! -name "$exclusion")
do echo "$a" $(echo "$a"|tr '[:lower:]' '[:upper:]')
done

remplacer le dossier et note le fichier à exclure.

test le script il met dans la première colonne le nom actuel, dans la deuxième le nom modifié.

Si cela semble correspondre à ce que tu recherches remplace "echo" par "mv" et il effectuera le renommage !

pour le flac j'ai pas encore réfléchi, je verrai déjà si tu attends encore la réponse.

Dernière modification par Compte anonymisé (Le 08/11/2015, à 23:37)

#1885 Le 21/12/2015, à 16:54

Morrisson

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Salut à tous, wink
Je viens de terminer un script qui, selon peut intéresser certaines personnes  roll .
   Introduction ( l'histoire du script ) : Le script permet d'ajouter des taggs en IDE 3 à des fichiers audio de type .flac en prenant appui sur un fichier texte ( extension .info) que l'on créer manuellement. Il ajoute notamment une image en icône  tongue . De plus, il s'occupe de renommer les fichiers : n° titre.flac.
Requis : eyeD3 et Imagick et un dossier avec un album en flac et une image en .jpg.

#!/bin/bash

#Indiquer le dossier 
echo 'Dossier (chemin absolue) ?'
read Dossier
echo $Dossier
cd "$Dossier"

OLDIFS=$IFS;
IFS=$(echo -en "\n\b" );
for fileA in `(ls)`;do ## parcourir un ls avec des espaces.
echo "$fileA"
cd "$fileA"

###condition et vérification des inforamtions 


# Récuperer les données de «*.info»
artiste=`sed -n '1p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
echo $artiste
album=`sed -n '2p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
echo $album
date=`sed -n '3p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
echo $date
genre=`sed -n '4p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
echo $genre
a=`sed -n '5p' *.info | cut -d = -f 2 | cut -d ';' -f 1 | cut -d ' ' -f 2-`
let " nbre = $a"
echo $nbre

######Pause pour voir si il y a des erreurs.
echo 'Informations corrects ?'
read attente1

###Ajouter la convertion d'images

#convertir et renommer l'image présente
mv *.jpg "$album.jpg"
convert *.jpg -resize 1000x1000\! "$album.jpg"
convert "$album.jpg" "$album.png"

#Ajouter les informations à chaque fichier
find . -maxdepth 1 -name "*.flac" -exec eyeD3 --remove-all {} \;
find . -maxdepth 1 -name "*.flac" -exec eyeD3 --to-v2.4 {} \;
for i in `seq 1 $nbre`; do
titre=`sed -n "$((5+i))p" *.info`
echo "$titre"
if [[ $i -lt 10 ]]; then ##Cas des 9 premiers chiffre 0^.
fichier=`find . -maxdepth 1 -name "0$i*"| cut -d / -f 2`
mv "$fichier" "$titre.flac"
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -a "$artiste" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3	-A "$album" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -n "0$i" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -N "$nbre" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -G "$genre" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -Y "$date" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 --add-image="$album.jpg":FRONT_COVER {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -i "$album.png" {} \; ###Message d'erreur «Directory does not exist: Mon Super Albums.png/»
else
fichier=`find . -maxdepth 1 -name "$i*"| cut -d / -f 2`
mv "$fichier" "$titre.flac"
find . -maxdepth 1 -name "$i*" -exec eyeD3 -a "$artiste" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3	-A "$album" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -n "$i" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -N "$nbre" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -G "$genre" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -Y "$date" {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 --add-image="$album.jpg":FRONT_COVER {} \;
find . -maxdepth 1 -name "$i*" -exec eyeD3 -i "$album.png" {} \; ###Message d'erreur «Directory does not exist: Mon Super Albums.png/»
fi
done
rm "$album.png"

echo 'Voulez-vous continuer ?'
read attente1

cd ../
mv "$fileA" "$album"
mkdir "$artiste"
mv "$album" "$artiste"/
done
IFS=$OLDIFS;

#Afficher le message de fin
echo -e '..EEEE..N....N..DDD...\n..E.....N.N..N..D..D..\n..EEEE..N..N.N..D...D.\n..E.....N...NN..D..D..\n..EEEE..N....N..DDD...' 

Le fichier .info doit être comme cela ->

:

Artiste= AaRON;
Album= Artificial Animals Riding On Neverland;
Date= 2007;
Genre= Synthpop;
Number Of Tracks= 13;
01 Endless Song
02 U-Turn (Lili)
03 O-Song
04 Mister K
05 Blow
06 Beautiful Scar
07 Strange Fruit
08 Angel Dust
09 War Flag
10 Lost Highway
11 Le Tunnel D'Or
12 Little Love
13 Last Night Thoughts

PS: je cherche un solution pour que le script n'affiche pas les retours des commandes de eyeD3. Si vous avez des suggestions faites les moi savoir smile .

#1886 Le 21/12/2015, à 18:15

Compte anonymisé

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour,

en tout premier lieu, félicitation pour ton script.

Quelques questions/remarques,

La syntaxe du fichier info, on peut la retrouver ailleurs, ou c'est toi qui l'a faite ? Parce que c'est pas très "script friendly"

convert "$album.jpg" "$album.png"

ça n'a priori aucun intérêt et le fichier final aura les défauts du format jpeg sans ses avantages.

Et on peut optimiser/simplifier pas mal le script.

pour les retours eye3D il faut rediriger les messages stdin et stderr vers /dev/null (&> /dev/null)

Dernière modification par Compte anonymisé (Le 21/12/2015, à 18:16)

#1887 Le 21/12/2015, à 18:25

navtex

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

bonjour
serait-il possible de faire un script relatif à qarte.En effet avec une connection passable le téléchargement n'aboutit pas.

aussi la premiere commande (par exemple)

rtmpdump --host cp363648.edgefcs.net --port 1935 --protocol rtmp --app ondemand --playpath 'mp4:am/tvguide/SAT/048760-004-A_HQ_2_VOF_02101588_MP4-800_AMM-Tvguide.mp4' -o /home/ser/arte/plus145067806801.fl

doit etre transformée ensuite en (+ -e)

rtmpdump -e --host cp363648.edgefcs.net --port 1935 --protocol rtmp --app ondemand --playpath 'mp4:am/tvguide/SAT/048760-004-A_HQ_2_VOF_02101588_MP4-800_AMM-Tvguide.mp4' -o /home/ser/arte/plus145067806801.fl

puis répétée souvent 5 ou 6 fois jusqu'à "complete"

Dernière modification par navtex (Le 21/12/2015, à 18:26)


Xubuntu sur CLEVO PA7 i5 32ram Jammy Jellyfish
ABientot sur le Libre

Hors ligne

#1888 Le 21/12/2015, à 18:50

Compte anonymisé

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

quelque chose comme ça ?

while true;do rtmpdump -e --host cp363648.edgefcs.net --port 1935 --protocol rtmp --app ondemand --playpath 'mp4:am/tvguide/SAT/048760-004-A_HQ_2_VOF_02101588_MP4-800_AMM-Tvguide.mp4' -o /home/ser/arte/plus145067806801.fl;done

- l'option -e à l'air de marcher même si le fichier n'existe pas, donc pas besoin de 2 commandes séparées

PS : rtmpdump n'indique pas au shell que le téléchargement c'est bien terminé, alors il faut quitter avec CTRL-C

Dernière modification par Compte anonymisé (Le 21/12/2015, à 19:00)

#1889 Le 21/12/2015, à 20:31

navtex

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

but mais de mémoire

rtmpdump -e

se plante à trouver le fichier à completer normalement crée par

rtmpdump --host....

Ps : ma premiere réaction

correction : ça marche ! j'ai du zapper ce matin ??

Dernière modification par navtex (Le 21/12/2015, à 20:41)


Xubuntu sur CLEVO PA7 i5 32ram Jammy Jellyfish
ABientot sur le Libre

Hors ligne

#1890 Le 21/12/2015, à 20:51

navtex

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Je suis bête mais (c'est pour ma copine un peu simplette) ;
donc une commande qui ferait apparaitre

while true;do rtmpdump -e 

dans un terminal, à compléter par un collé de l'adresse ?

Dernière modification par navtex (Le 21/12/2015, à 20:54)


Xubuntu sur CLEVO PA7 i5 32ram Jammy Jellyfish
ABientot sur le Libre

Hors ligne

#1891 Le 21/12/2015, à 21:17

Morrisson

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Re

Donc pour le script pour les fichiers taggs, si j'ai bien compris pour l’icône, il n'y a pas besoin de convertir le .jpg en .pnj .
Mais sinon pour les redirections, cela m’intéresse vraiment de savoir comment faire car je ne sais pas dû tout big_smile et l'optimisation roll .
Ps: je suis pas un expert, c'est mon premier script de ma vie cool et l'idée du fichier d'info, c'est de moi smile

#1892 Le 22/12/2015, à 17:51

Compte anonymisé

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

@navtex

une fonction qui le fait automatiquement (à mettre à la fin de ~/.bashrc) ?

rt() { until [ "$a" = 1 ];do rtmpdump -e $*&&a=1;done }

et après au lieu d'écrire :

rtmpdump --host cp363648.edgefcs.net --port 1935 --protocol rtmp --app ondemand --playpath 'mp4:am/tvguide/SAT/048760-004-A_HQ_2_VOF_02101588_MP4-800_AMM-Tvguide.mp4' -o /home/ser/arte/plus145067806801.fl

tu écris :

rt --host cp363648.edgefcs.net --port 1935 --protocol rtmp --app ondemand --playpath 'mp4:am/tvguide/SAT/048760-004-A_HQ_2_VOF_02101588_MP4-800_AMM-Tvguide.mp4' -o /home/ser/arte/plus145067806801.fl

et ça te rajoutera automatiquement le -e et te fera une boucle !

EDIT : la boucle s’arrête finalement quand c'est fini.

Dernière modification par Compte anonymisé (Le 23/12/2015, à 12:26)

#1893 Le 22/12/2015, à 18:18

Compte anonymisé

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

@Morrisson

tu dois par exemple pouvoir remplacer ce passage :

find . -maxdepth 1 -name "0$i*" -exec eyeD3 -a "$artiste" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3	-A "$album" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -n "0$i" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -N "$nbre" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -G "$genre" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -Y "$date" {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 --add-image="$album.jpg":FRONT_COVER {} \;
find . -maxdepth 1 -name "0$i*" -exec eyeD3 -i "$album.png" {} \; 

par :

find . -maxdepth 1 -name "0$i*"|while read a
do
eyeD3 -a "$artiste" -A "$album" -n "0$i" -N "$nbre" -G "$genre" -Y "$date" --add-image="$album.jpg":FRONT_COVER -i "$album.png" "$a" &> /dev/null
done

qui devrait faire exactement la même chose, tu remarquera le "&> /dev/null" à la fin de la ligne eyeD3 qui dit de renvoyer les messages vers /dev/null (nulle part en faite)

#1894 Le 22/12/2015, à 18:27

Compte anonymisé

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Pour ton fichier info je propose de le simplifier

artist=AaRON
album=Artificial Animals Riding On Neverland
year=2007
genre=Synthpop
track-total=13
01 Endless Song
02 U-Turn (Lili)
03 O-Song
04 Mister K
05 Blow
06 Beautiful Scar
07 Strange Fruit
08 Angel Dust
09 War Flag
10 Lost Highway
11 Le Tunnel D'Or
12 Little Love
13 Last Night Thoughts

comme ça pour extraire le nom de l'artiste

grep artist= fichier|cut -f2 -d"="

et le nom des champs est identique à ce qu'on peut retrouver dans l'ID3.

#1895 Le 22/12/2015, à 18:48

navtex

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

qarte lancé en terminal , lors d'un téléchargement affiche

exécuter cette commande dans un terminal
rtmpdump --host etc..flv

du coup pour faire un simple copié-collé ,on peut : en enlevant le r du début et le v de la fin ,et c'est  faisable en renommant la fonction "rt" en "tmpdump"
Si c'est assez net , j'en ferais part sur le topic de qarte . merci


Xubuntu sur CLEVO PA7 i5 32ram Jammy Jellyfish
ABientot sur le Libre

Hors ligne

#1896 Le 22/12/2015, à 19:09

Compte anonymisé

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

@navtex

tu peux appeler la fonction comme bon te semble (évite juste les noms déjà utilisé par d'autre programme smile)

#1897 Le 10/01/2016, à 16:51

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Hello

J'ai trouvé sur ce fofo un script en lua pour pouvoir lancer deux ou plusieurs script.lua mais cela ne fonctionne pas rien ne se lance .

c'est pour remplacer ceci :

lua_load ~/.conky/blanc/baro.lua
lua_draw_hook_pre main

lua_load ~/.conky/blanc/textwriting.lua
lua_draw_hook_post draw_text


je l'appelle avec ceci:

lua_load ~/.conky/blanc/barotext.lua
lua_draw_hook_pre main

voici le code en question:




 
package.path = "/home/loutch/.conky/blanc/?.lua"
require 'baro' --for scriptA.lua ".lua" is not required here
require 'textwriting'

function conky_main()
     lua_draw_hook_pre()
     lua_draw_hook_post()
end

une idée où est mon problème?

@+

Dernière modification par loutch (Le 10/01/2016, à 16:54)

Hors ligne

#1898 Le 11/01/2016, à 14:41

pguimier

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour voici des scripts pour le répertoire de script nautilus :
Convertir des fichiers svg en pdf (il faut inkscape) :

#!/bin/bash

scriptname=`basename $0`
# Determine wave type to convert to based on the name of the script
newext=`echo $scriptname | sed 's/inkscape.to.\(.\+\)/.\1/'`
logfile=`mktemp -t $script_name.XXXXXX`


tail -f $logfile | zenity --text-info --title="Converting sound to $newext" &
for svg in "$@"; do
    oldext=$(echo $svg|sed 's/.*\.\(.\+\)/\1/')
    if [ $oldext != "svg" ]
    then 
        echo "Not a svg file"  >> $logfile
        continue
    fi
    # Determine target svg name
    target=$(echo $svg|sed 's/\(.*\)\..\+/\1/')$newext
    if [ -f "$target" ] 
    then 
        echo "File exists"  >> $logfile
        continue
    fi
    datefile=`date -r "$svg" +%Y%m%d%H%M`
    echo "$svg -> $target" >> $logfile
    inkscape -f "$svg" -d 90 -A "$target"
    touch -t $datefile "$target"
done

echo done >> $logfile
rm -f $logfile

Convertir des fichiers svg en jpg (il faut inkscape ET image magick) :

#!/bin/bash

scriptname=`basename $0`
# Determine wave type to convert to based on the name of the script
newext=`echo $scriptname | sed 's/inkscape.to.\(.\+\)/.\1/'`
logfile=`mktemp -t $script_name.XXXXXX`


tail -f $logfile | zenity --text-info --title="Converting sound to $newext" &
for svg in "$@"; do
    oldext=$(echo $svg|sed 's/.*\.\(.\+\)/\1/')
    if [ $oldext != "svg" && $oldext != "pdf" ]
    then
        echo "Not a svg file"  >> $logfile
        continue
    fi
    # Determine target svg name
    target=dac

    target2=$(echo $svg|sed 's/\(.*\)\..\+/\1/')$newext
    if [ -f "$target" ]
    then
        echo "File $target exists"  >> $logfile
        continue
    fi
    if [ -f "$target2" ]
    then
        echo "File $target2 exists"  >> $logfile
        continue
    fi
    datefile=`date -r "$svg" +%Y%m%d%H%M`
    echo "$svg -> $target" >> $logfile
    inkscape -f "$svg" -d 300 -e "$target"
    touch -t $datefile "$target"
    echo "$target -> $target2" >> $logfile
    convert "$target" -quality 92 -density 90 -resample 150x150 -resize 850x710 "$target2"
    touch -t $datefile "$target2"
    rm "$target"
done

echo done >> $logfile
rm -f $logfile

Hors ligne

#1899 Le 15/01/2016, à 09:59

loutch

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Hello

J'ai cette erreur en konsole j'ai bien changé de fonction mais je trouve pas laquelle donner.

Conky: llua_do_call: function conky_main execution failed: /home/loutch/.conky/blanc/barotext.lua:14: attempt to call global 'lua_draw_hook_pre' (a nil value)
Conky: llua_do_call: function conky_main execution failed: /home/loutch/.conky/blanc/barotext.lua:14: attempt to call global 'lua_draw_hook_pre' (a nil value)

@+

Hors ligne

#1900 Le 18/02/2016, à 18:41

kholo

Re : [ VOS SCRIPTS UTILES ] (et eventuelles demandes de scripts...)

Bonjour, je relance les scripteurs fous avec quelques trucs :
NB : d'abord la notation `une_fonction` est en train de disparaître au profit de "$(une_fonction)"

ensuite, voici un bout de script pour utiliser la gestion des ini (ou conf)
c'est à dire enregistrer et lire un fichier ini
suite de cette vieille discussion

#!/bin/bash
nomLogiciel="$(basename "$0")"
FONCTION="lecture et écriture de fichier ini ou conf"
VERSION="alpha"

echo "lancement $nomLogiciel..."

function _quitter {
	# mettre ici tout ce qui sera nécessaire à la bonne fermeture
echo "--------------------------------
AVANT sauverIni le fichier ini contient :"
cat $fichierIni

	# echo "$(sauverIni)" > "$nomLogiciel.ini"  ;
	sauverIni ;

echo "--------------------------------
APRES sauverIni le fichier ini contient :"
cat $fichierIni

	exit 0
}

function parserLigneIni {
	i=$@ ;
	case $i in
		# xxxxx=*)				xxxxxx="${i#*=}" ;;		
		nomLogiciel=*)			nomLogiciel="${i#*=}" ;;
		FONCTION=*)				FONCTION="${i#*=}" ;;
		VERSION=*)				VERSION="${i#*=}" ;;
		une_valeur=*)			une_valeur="${i#*=}" ;;
		une_autre_valeur=*)		une_autre_valeur="${i#*=}" ;;
		une_troisieme=*)		une_troisieme="${i#*=}" ;;
	esac
}

function chargerIni {
# [ -f "$fichierIni" ] || \#
	while read line ;
	do
		parserLigneIni "$line" ;
	done < "$fichierIni" ;
}

function sauverIni {
echo "nomLogiciel=$nomLogiciel
FONCTION=$FONCTION
VERSION=$VERSION
une_valeur=$une_valeur
une_autre_valeur=$une_autre_valeur
une_troisieme=$une_troisieme
"  > "$nomLogiciel.ini" ;
}

function _initialisation {
	une_valeur="On peut changer le fichier ini puis"
	une_autre_valeur="le relancer pour voir les changements"
	une_troisieme="des espaces et des lettres accentuées àÂâêïù"

echo "Les valeurs AVANT chargerIni sont :
nomLogiciel=$nomLogiciel
FONCTION=$FONCTION
VERSION=$VERSION
une_valeur=$une_valeur
une_autre_valeur=$une_autre_valeur
une_troisieme=$une_troisieme
" 

	fichierIni="$nomLogiciel.ini"
	echo "le nom du fichier ini est : $fichierIni"
	chargerIni ;

echo "Les valeurs APRES chargerIni sont :
nomLogiciel=$nomLogiciel
FONCTION=$FONCTION
VERSION=$VERSION
une_valeur=$une_valeur
une_autre_valeur=$une_autre_valeur
une_troisieme=$une_troisieme
" 
}

function _main {
	_quitter
}

_initialisation
_main

echo "Ne doit pas s'afficher !"
exit 0

celui là c'est pour ranger tous les fichiers d'un dossier et ses sous dossiers
par type mime
il doit pouvoir s'améliorer en gérant plutôt les extensions

#!/bin/bash
nomLogiciel="$(basename "$0")" ;
# script pour réorganiser une arborescence rapidement
FONCTION="organiser les fichiers 
en les rangeant dans des dossiers au nom des types mimes" ;
VERSION="0.7" ;
# NOTES DE VERSIONS
# ----------------------------------------------
# 
# ----------------------------------------------
#
# Copyright (C) 22 Jan. 2011, Rombeaut Rodolphe
# http://scriptam.over-blog.com/
# Released into the public domain.
# 
# modifié par kholo-informatique 2016
# www.kholo-informatique.fr
#********************************************************************

function creer_journal {
	fichier_log="$nomLogiciel.log"
journal "$(date)
Ouverture de $nomLogiciel"
}

function journal {
	./journal "$fichier_log" "$@"
}
creer_journal

# journal "Chargement..." "voir_journal"
function voir_journal {
journal "-----------------
FONCTION voir_journal $@
-----------------"
	zenity --text-info \
			--width=600 --height=450 \
			--title="Fichier Journal" \
			--filename=$"$fichier_log" \
			--checkbox="vider le journal en quittant."

	case $? in
		0) rm -f "$fichier_log";
			creer_journal
			journal "RàZ Remise à zéro du journal !"
		;;
		1) journal "Sortie - voir_journal !" ;;
		-1) journal "voir_journal - An unexpected error has occurred." ;;
	esac
}

#********************************************************************
journal "lancement $nomLogiciel..." ;
#********************************************************************

# journal "Chargement..." ""_initialisation
function _initialisation {
journal "-----------------
FONCTION _initialisation
-----------------" ;
# Couleurs du texte affiché dans le shell
	FUSHIA="\033[1;35m" ;
	NOIR="\033[1;0m" ;
	BLEU="\033[1;34m" ;
	VERT="\033[1;32m" ;
	ROUGE="\033[1;31m" ;

	# dirOrigine="/répertoire à trier"
	dirOrigine="$HOME" ;
	# dirDestination="/répertoire de destination"
	dirDestination="$HOME" ;

	nbreDeFichiers=0 ;

	fichierIni="$nomLogiciel.ini"
	chargerIni ;
}

# journal "Chargement..." "chargerIni"
function chargerIni {
journal "-----------------
FONCTION chargement ini
-----------------" ;
	# local x ;
	while read line ;
	do
		journal "$line" ;
		parserLigneIni "$line" ;
		
	done < "$fichierIni" ;
	journal "chargement terminé" ;
}

# journal "Chargement..." "_quitter"
function _quitter {
journal "-----------------
FONCTION _quitter
-----------------" ;
	# mettre ici tout ce qui sera nescessaire à la bonne fermeture

	sauverIni	 ;
	exit 0
}

#********************************************************************

# journal "Chargement..." "parserLigneIni"
function parserLigneIni {
journal "-----------------
FONCTION parserLigneIni
-----------------" ;
	i=$@ ;
	journal "parseur $i" ;
	case $i in
		# xxxxx=*)					xxxxxx="${i#*=}" ;;
		dirOrigine=*)					dirOrigine="${i#*=}" ;;
		dirDestination=*)				dirDestination="${i#*=}" ;;
	esac
}

# journal "Chargement..." "sauverIni"
function sauverIni {
journal "-----------------
FONCTION sauverIni
-----------------" ;
echo "dirOrigine=$dirOrigine
dirDestination=$dirDestination
" > "$nomLogiciel.ini" ;
}

#********************************************************************

# journal "Chargement..." "range"
function range {
	heuredebut=$(date +%s.%N) ;

	# local ORIG=${ORIG%/} ;
	# local DEST=${DEST%/} ;
	local ORIG=${dirOrigine%/} ;
	local DEST=${dirDestination%/} ;

	find $ORIG/ -regextype "posix-extended" -depth -type f -regex ".*"  | while read fichier ; do
		((nbreDeFichiers++)) ;
		a=$(file -ib "${fichier}") ;

journal "------------------------------------------------
en cours : $a" ;

		[ -d "$DEST/${a%%/*}" ] || mkdir -p "$DEST/${a%%/*}" ;
		mvfichierext=${fichier##*/} ;
		mvfichier=${mvfichierext%%.*} ;
		ext=${mvfichierext#*.} ;

journal "N° $nbreDeFichiers
fichier		: $fichier
mvfichierext	: $mvfichierext
mvfichier	: $mvfichier
ext		: $ext " ;

		# sleep 2 ; #-pour prendre le temps de regarder !

		[ "${fichier%/*}" != "$DEST/${a%%/*}" ] && {
		[ -f "$DEST/${a%%/*}/${mvfichierext}" ] && {
			b=1 ;
			while [ -f "$DEST/${a%%/*}/${mvfichier}_copie${b}.${ext}" ] ; do ((b++)) ; done
			mv "${fichier}" "$DEST/${a%%/*}/${mvfichier}_copie${b}.${ext}" ;
		} || mv "${fichier}" "$DEST/${a%%/*}/${mvfichierext}" ;
		}

	journal "destination	: $DEST/${a%%/*}" ;
	duree="$(echo "$(date +%s.%N) - $heuredebut" | bc)" ;
	journal "Traitement de $nbreDeFichiers fichiers en $duree secondes" ;

	done
	# supprimer les dossiers quand le travail est terminé
	# find $ORIG/ -type d -exec rmdir 2>/dev/null {} \;

	duree="$(echo "$(date +%s.%N) - $heuredebut" | bc)" ;
	journal "Traitement de $nbreDeFichiers fichiers en $duree secondes" ;
}

#********************************************************************

# journal "Chargement..." "frm_principale"
function frm_principale {
journal "-----------------
FONCTION frm_principale
-----------------" ;
LAQUESTION="
---------------------------------------------------------------------
<b>Organisation de fichiers</b>
$FONCTION
Ce module <b>recherche des fichiers</b> selon un <b>modèle</b>
puis les <b>déplace</b>
depuis un <b>dossier origine</b> vers un <b>dossier destination</b>
" ;

	local KA="Dossier Origine" ;
	local KB="Dossier Destination" ;
	local KC="Organiser " ;
	local KD="" ;
	local KE="" ;
	local KF="" ;
	local KG="" ;
	local KH="" ;
	local KI="journal" ;

	local VA="$dirOrigine" ;
	local VB="$dirDestination" ;
	local VC="fichiers par type mime" ;
	local VD="" ;
	local VE="Valeur 9" ;
	local VF="Valeur 6" ;
	local VG="Valeur 7" ;
	local VH="Valeur 8" ;
	local VI="voir et RàZ" ;

	zenity --list --width=600 --height=350 --text="$LAQUESTION" \
	--ok-label="Sélectionner" \
	--cancel-label="quitter" \
	--hide-column 1 --column "" --column "choix" --column "valeur" \
	1 "$KA" "$VA" \
	2 "$KB" "$VB" \
	0 "" "" \
	3 "$KC" "$VC" \
	0 "" "" \
	9 "$KI" "$VI" ;

	# 4 "$KD" "$VD" \
	# 5 "$KE" "$VE" \
	# 6 "$KF" "$VF" \
	# 7 "$KG" "$VG" \
	# 8 "$KH" "$VH" \ #
}

# journal "Chargement..." "frm_principale_parser"
function frm_principale_parser {
journal "-----------------
FONCTION frm_principale_parser
-----------------" ;
	case $1 in
		1) setDirOrigine ;;
		2) setDirDestination ;;
		3) range ;;
		# 4) echo "rien encore" ;;
		# 5) echo "rien encore" ;;
		# 6) echo "rien encore" ;;
		# 7) echo "rien encore" ;;
		# 8) echo "rien encore" ;;
		9) voir_journal ;;
		0) 
			echo ""
			;;
		*) 
			quitter="1"
			_quitter ;;
	esac
}

#********************************************************************

# journal "Chargement..." "_main"
function _main {
journal "-----------------
FONCTION _main
-----------------" ;
	menuchoice=$(frm_principale);
	frm_principale_parser ${menuchoice%|*} # pour corriger le 1|1

	if [ $quitter!="1" ] ; then
		# on boucle tant que quitter est différent de 1
		# pas de else car pas nescessaire ;°)
		_main ;
	fi
}

#********************************************************************

# journal "Chargement..." "setDirOrigine"
function setDirOrigine {
journal "-----------------
FONCTION setDirOrigine
-----------------" ;
	local dirOrigineOld="$dirOrigine" ;
	dirOrigine="$(zenity --file-selection --directory --filename="$dirOrigine/")" ;
	if [ $? = 0 ] ;
	then
		journal "Le dirOrigine est ${dirOrigine}" ;
	else
		dirOrigine="$dirOrigineOld" ;
	fi
}

# journal "Chargement..." "setDirDestination"
function setDirDestination {
journal "-----------------
FONCTION setDirDestination
-----------------" ;
	local dirDestinationOld="$dirDestination" ;
	dirDestination="$(zenity --file-selection --directory --filename="$dirDestination/")" ;
	if [ $? = 0 ] ;
	then
		journal "dirDestination : ${dirDestination}" ;
	else
		dirDestination="$dirDestinationOld" ;
	fi
}

# journal "Chargement..." "afficher_aide_ldc"
function afficher_aide_ldc {
echo "
-----------------------------------------------
exemples :
$nomLogiciel -[OPTIONS]
 
-----------------------------------------------
"
}

#********************************************************************

# journal "Chargement..." "parser_arguments_VARIABLES"
function parser_arguments_VARIABLES {
journal "-----------------
FONCTION parser_arguments_VARIABLES $@
-----------------"
# PARSER VARIABLES
local i
for i in $@ ;
do
case $i in
	-h|-H|--help) 	afficher_aide_ldc		;;
	# fiche=*)		fiche="${i#*=}" 		;;
	fichier_rch=*)	fichier_rch="${i#*=}"	;;
esac
done

}

# journal "Chargement..." "parser_arguments_ACTION"
function parser_arguments_ACTION {
journal "-----------------
FONCTION parser_arguments_ACTION $@
-----------------"
local i
for i in $@
do
case $i in
	-r|--range) 	range				;;
	# *) journal "$i - unknown option"	;;
esac
done
}

#********************************************************************

# journal "Chargement..." "EDITION_IN"
function EDITION_IN {
journal "-----------------
FONCTION EDITION_IN $@
-----------------"
	_initialisation
	_main
}

# journal "Chargement..." "EDITION_OUT"
function EDITION_OUT {
journal "-----------------
FONCTION EDITION_OUT
-----------------"
	parser_arguments_VARIABLES "$@"
	_initialisation
	parser_arguments_ACTION "$@"
}

# ********************************************************************

if [ "$#" -eq 0 ]; then
	journal "mode_edition=TRUE -> IN"
	mode_edition="TRUE"

	EDITION_IN
else
	journal "mode_edition=FALSE -> OUT"
	mode_edition="FALSE"
	EDITION_OUT "$@"
fi

# ********************************************************************

exit 0

Pour les GUI vite faits avec une liste de choix j'ai ce genre de chose avec zenity list
je remet un exemple que j'ai mis sur le forum pour lancer des jeux dans Mame

#!/bin/bash
# ----------------------------------------------
nomLogiciel="$(basename "$0")"
FONCTION="lancement de jeux avec Mame"
VERSION="alpha"
# NOTES DE VERSIONS
# 
# ----------------------------------------------
# à mettre au début d'un fichier bash
# pas encore géré
# PID=$$
# FIFO=/tmp/FIFO${PID}
# mkfifo ${FIFO}
# ----------------------------------------------
echo "lancement $nomLogiciel..."

declare -a GAME_NAME ;
declare -a GAME_PATH ;
declare -a GAME_ARGS ;

function _journal {
	fichier_log="$nomLogiciel.log"

	if [ -f "$fichier_log" ];
	then
		echo "..."
	else
		echo "Création du fichier de log : $fichier_log"
		touch "$fichier_log";
	fi
}
echo "ouverture du journal"
_journal

function journal {
	echo "$@" >> $fichier_log
}

# journal "Chargement..." "voir_journal"
function voir_journal {
journal "-----------------
FONCTION voir_journal $@
-----------------"
	zenity --text-info \
			--width=600 --height=450 \
			--title="Fichier Journal" \
			--filename=$"$fichier_log" \
			--checkbox="vider le journal en quittant."

	case $? in
		# 0) 2>/dev/NULL > "$fichier_log";
		0) rm -f "$fichier_log" ;
			_journal
			journal "RàZ Remise à zéro du journal !"
		;;
		1) journal "Sortie - voir_journal !" ;;
		-1) journal "voir_journal - An unexpected error has occurred." ;;
	esac
}

# journal "Chargement..." "_initialisation"
function _initialisation {
journal "*******************initialisation*******************"
quitter="0"
journal "VARIABLES"
MAME="/usr/games/mame"
LAQUESTION="<b>$nomLogiciel</b>
--------------------------------------------------
Ce module est une liste de choix de jeux Mame
--------------------------------------------------
le double clic sur un choix pour lancer un jeu
sélection avec les flèches puis entrée aussi
echap pour quitter
" ;
#-------------------------------------------------------------
GAME_NAME[0]="Nom" ;
GAME_PATH[0]="Chemin" ;
GAME_ARGS[0]="Arguments" ;
#-------------------------------------------------------------
# METTRE LA LISTE ET LES PARAMETRAGES DES JEUX ICI
# ATTENTION ZENITY EST TRES CHATOUILLEUX
# IL N'AIME PAS LES LES VARIBLES QUI COMMENCENT PAR UN TIRET "-"
# SOLUTION : METTRE UN ESPACE
#-------------------------------------------------------------
GAME_NAME[1]="makaimurg" ;
GAME_PATH[1]="/home/mame/roms/makaimurg" ;
# METTRE LES DIFFERENTES CONF A COMMENTER OU DECOMMENTER
# GAME_ARGS[1]=" -resolution 1900x1080 -waitvsync -cheat -autosave" ;	# CONFIG MAXI
GAME_ARGS[1]=" -resolution 1400x1050 -waitvsync -cheat -autosave" ; 	# CONFIG DEFAUT
# GAME_ARGS[1]=" -resolution 1024x768 -waitvsync -cheat -autosave" ;	# CONFIG MINI
#-------------------------------------------------------------
GAME_NAME[2]="Jeux 2" ;
GAME_PATH[2]="/chemin/vers/jeux2" ;
GAME_ARGS[2]="arguments de Jeux 2" ;
#-------------------------------------------------------------
GAME_NAME[3]="Jeux 3" ;
GAME_PATH[3]="/chemin/vers/jeux3" ;
GAME_ARGS[3]="arguments de Jeux 3" ;
#-------------------------------------------------------------
GAME_NAME[4]="Jeux 4" ;
GAME_PATH[4]="/chemin/vers/jeux4" ;
GAME_ARGS[4]="arguments de Jeux 4" ;
#-------------------------------------------------------------
GAME_NAME[5]="Jeux 5" ;
GAME_PATH[5]="/chemin/vers/jeux5" ;
GAME_ARGS[5]="arguments de Jeux 5" ;
#-------------------------------------------------------------
GAME_NAME[6]="Jeux 6" ;
GAME_PATH[6]="/chemin/vers/jeux6" ;
GAME_ARGS[6]="arguments de Jeux 6" ;
#-------------------------------------------------------------
GAME_NAME[7]="Jeux 7" ;
GAME_PATH[7]="/chemin/vers/jeux7" ;
GAME_ARGS[7]="arguments de Jeux 7" ;
#-------------------------------------------------------------
GAME_NAME[8]="Jeux 8" ;
GAME_PATH[8]="/chemin/vers/jeux8" ;
GAME_ARGS[8]="arguments de Jeux 8" ;
#-------------------------------------------------------------
GAME_NAME[9]="Jeux 9" ;
GAME_PATH[9]="/chemin/vers/jeux9" ;
GAME_ARGS[9]="arguments de Jeux 9" ;
#-------------------------------------------------------------
}

# journal "Chargement..." "_quitter"
function _quitter {
journal "_quitter"
# mettre ici tout ce qui sera nescessaire à la bonne fermeture

	exit 0
}

# journal "Chargement..." "frm_principale"
function frm_principale {
journal "*******************frm_principale*******************"
	zenity --list --width=600 --height=430 --text="$LAQUESTION" \
	--ok-label="Sélectionner" \
	--cancel-label="quitter" \
	--hide-column 1 --column "" --column "${GAME_NAME[0]}" --column "${GAME_ARGS[0]}" \
	1 "${GAME_NAME[1]}" "${GAME_ARGS[1]}" \
	0 "" "" \
	2 "${GAME_NAME[2]}" "${GAME_ARGS[2]}" \
	3 "${GAME_NAME[3]}" "${GAME_ARGS[3]}" \
	4 "${GAME_NAME[4]}" "${GAME_ARGS[4]}" \
	5 "${GAME_NAME[5]}" "${GAME_ARGS[5]}" \
	6 "${GAME_NAME[6]}" "${GAME_ARGS[6]}" \
	7 "${GAME_NAME[7]}" "${GAME_ARGS[7]}" \
	8 "${GAME_NAME[8]}" "${GAME_ARGS[8]}" \
	9 "${GAME_NAME[9]}" "${GAME_ARGS[9]}" \
	0 "" "" \
	100 "journal" "voir les logs" \
	101 "aide" "texte aide" ;
}

# journal "Chargement..." "frm_principale_parser"
function frm_principale_parser {
journal "*******************frm_principale_parser*******************"
journal "frm_principale_parser : $1"
	case $1 in	
		# 1) lanceur "$1" ;;
		[1-9]) lanceur $1 ;;
		100) voir_journal ;;
		101) voir_aide ;;
		0) echo "" ;;
		*) # quitter="1" ;
			_quitter ;;
	esac
}

# journal "Chargement..." "lanceur"
function lanceur {
	nombre=$1
	echo "lancement de ${GAME_NAME[$nombre]}"
	# $MAME "${GAME_PATH[9]}" "${GAME_ARGS[9]}"
}

# journal "Chargement..." "_main"
function _main {
	journal "_main"
	menuchoice=$(frm_principale);
	frm_principale_parser ${menuchoice%|*} # pour corriger le 1|1

	if [ $quitter!="1" ] ; then
		#on boucle tant que quitter est différent de 1
		#pas de else car pas nescessaire ;°)
		_main
	fi
}

# journal "Chargement..." "voir_aide"
function voir_aide {
echo "
ce script crée un fichier journal avec un .log
les fonction _journal et journal
un appel de journal fonctionnera comme echo

_initialisation porte bien son nom
il est lancé avant main
mettre les jeux dedans selon le modèle laissé

_main
la boucle permet de relancer l'interface principale 
chaque fois qu'une action est terminée

frm_principale
lance zenity et retournera le numéro de ligne sélectionnée

frm_principale_parser
effectuera une action selon la réponse donnée par frm_principale

_quitter
permet de fermer plus proprement son application
"
}

# #-initialisation
_initialisation
_main

exit 0

bon code !

Hors ligne