IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Vos scripts shell


Sujet :

Shell et commandes GNU

  1. #21
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut
    Nom du script: my_sqldump.sh

    Compatible avec : sh

    Descriptif:
    Dump de vos bases de données mysql dans un tarball.

    Pré-requis:
    mysql installé ;-)

    Points d'intérêt:
    * le script peut très bien être appelé par un shell/cron de backup par exemple.
    Fichiers attachés Fichiers attachés

  2. #22
    Membre confirmé Avatar de _shuriken_
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    543
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2006
    Messages : 543
    Points : 454
    Points
    454
    Par défaut
    Citation Envoyé par hornetbzz Voir le message
    Nom du script: my_sqldump.sh

    Compatible avec : sh

    Descriptif:
    Dump de vos bases de données mysql dans un tarball.

    Pré-requis:
    mysql installé ;-)

    Points d'intérêt:
    * le script peut très bien être appelé par un shell/cron de backup par exemple.
    Merci, ça va vraiment aider, je l'utilise déjà !
    "When you can measure what you are speaking about, and express it in numbers, you know something about it; but when you cannot measure it, when you cannot express it in numbers, your knowledge is of a meager and unsatisfactory kind; it may be the beginning of knowledge, but you have scarcely in your thoughts advanced to the state of Science, whatever the matter may be."

    Lord Kelvin - 1883.

  3. #23
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Nom du script: push.bashrc

    Ecrit pour : bash, a sourcer depuis le .bashrc (ou équivalent)

    Descriptif: Ensemble d'alias autour des commandes pushd, popd et dirs de bash. Cette famille de commandes permet d'empiler des répertoires pour ensuite se déplacer plus rapidement d'un répertoire de la pile à un autre. Voyez ça comme un "cd -" boosté. On peut même se référer à un répertoire de la pile à l'aide des raccourcis ~1, ~2, etc depuis tout autre lieu.

    Les apports du script sont les suivants:
    - un affichage lisible des répertoires empilés: rappel du numéro du répertoire dans la pile, un résultat par ligne.
    - l'alias "p" sur "pushd" (pour se rendre au répertoire ~1, ou pour empiler un nouveau répertoire en présence d'arguments), "p1" sur "pushd +1", etc. pour se rendre au i-ème répertoire ; cet alias affiche la liste des répertoires.
    - l'alias "d" sur "dirs" qui affiche la liste des répertoires. En présence d'un argument, seuls les répertoires matchant la regex passée sont affichés.
    - l'alias "g" (comme dans "go") qui va chercher les répertoires qui matchent la regex en paramètre. Si un seul répertoire est trouvé, il devient le nouveau répertoire courant.

    Pré-requis: bash

    Téléchargement: [Visualiser] -- [Autres scripts]
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  4. #24
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par hornetbzz Voir le message
    EDIT2: en bash c'est l'histoire d'une ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SERVER_IP=$(wget -q http://www.monip.org/ -O- | grep "IP :" | cut --characters=-80 | sed -e 's/^.* \(\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}\).*$/\1/')
    Bonjour,

    Si je puis me permettre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SERVER_IP=$(wget -qO- whatismyip.org)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SERVER_IP=$(curl whatismyip.org)
    Raccourcissent de plus de moitié la ligne
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  5. #25
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Bonjour,

    Si je puis me permettre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SERVER_IP=$(wget -qO- whatismyip.org)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SERVER_IP=$(curl whatismyip.org)
    Raccourcissent de plus de moitié la ligne
    ça m'aurait bien plus si cela fonctionnait sauf qu'aucune de ces 2 propositions ne fonctionnent.

  6. #26
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par hornetbzz Voir le message
    ça m'aurait bien plus si cela fonctionnait sauf qu'aucune de ces 2 propositions ne fonctionnent.
    Salut,

    Quand j'ai posté ça marchait, mais là apparemment le site est en carafe

    S'pad'mafôt, patapé hein ?
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  7. #27
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Tiens un remplaçant : whatismyip.akamai.com
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  8. #28
    Modérateur
    Avatar de paissad
    Homme Profil pro
    Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Inscrit en
    Avril 2006
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur de développement (Java/JEE/Eclipse RCP,EMF & webMethods)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 043
    Points : 2 560
    Points
    2 560
    Par défaut
    Remplace ton site par celui-ci
    Je l'utilise celui-ci depuis bien longtemps déjà.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wget -qO- http://www.whatismyip.com/automation/n09230945.asp
    Nous n'héritons pas de la terre de nos parents, nous l'empruntons à nos enfants.
    Le chat du site est aussi ici pour aider. Ne pas hésiter à visiter !

  9. #29
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Un autre au cas ou : whatismyip.fr/raw/

    $ man woman
    Il n'y a pas de page de manuel pour woman.

  10. #30
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Bonjour,

    Pour la récupération de son IP publique, un petit dernier :

    Et toute sa syntaxe qui va avec expliquée là : ifconfig.me

    $ man woman
    Il n'y a pas de page de manuel pour woman.

  11. #31
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Octobre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 53
    Points : 133
    Points
    133
    Par défaut Utilitaire
    Bonjour,
    suite à mon message concernant zenity (http://www.developpez.net/forums/d15...ist-from-file/, j'ai pri un peu de temps pour écrire le script ci-dessous.
    Il ne fait rien de bien exceptionnel et le code doit pouvoir être simplifié, il m'a surtout permis de me faire la main sur quelques commandes que je ne maîtrise pas aussi bien que je le voudrais (sed, awk, zenity)
    Je vous le livre tel quel, n'hésitez pas à commenter, corriger, améliorer.

    Nom du script: Util_V1
    Compatible avec: Bash
    Descriptif: Permet des actions de recherche, de mise à jour, d'installation etc.... (voir fichier d'aide)
    Pré-requis: le paquetage zenity
    Testé sous ubuntu et variantes

    En PJ:
    le script,
    le fichier texte d'explications
    util.tar.gz

  12. #32
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Nom du script : pskill.sh

    Compatible avec: Bash

    Descriptif : pskill permet d'envoyer un signal à un processus homogene à un nom de programme. Par defaut, il envoie le signal de mort.

    Pré-requis: bash

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
     
    #!/bin/bash
     
     #author : marc AUTRAN
     #Email : xxxxxx@xxxxx.xx
     #date : 22 dec 2002
     #description : script shell qui envoie un signal à un processus verifiant une expression reguliere
     #le signal est envoye via la commande kill
     #la commande kill respecte la synthaxe suivante : kill -n signal processus
     #ce script fut teste sous linux noyau 2.2.16
     
     #traite l'option -h
     for option
     do
       if [ "$option" = -h ]
       then
         echo 'Usage pskill.sh [-q] [-v] [-h] [-sig] <expression reguliere> '
         echo "Permet d'envoyer un signal via la commande kill aux processus dont la commande verifie <expression reguliere>"
         echo '-q : query, demande confirmation pour chaque processus'
         echo '-v : verbeux, affiche ce qui est fait'
         echo "-h : affichage de ce message d'aide"
         echo "-sig : ou sig est un signal, utilisation de ce signal au lieu du signal par defaut (SIGTERM). sig peut etre numerique ou symbolique selon ce qu'accepte la commande kill"
         exit
       fi
     done
     
     #traite les options -q -v et -signal
     declare -i compteur=0
     s=0
     v=0
     q=0
     while [ $# -gt 1 ]
     do
       case $1 in
         -v )
           echo 'debut de traitement ...'
           v=1
           shift;;
         -q )
           q=1
           shift;;
         -* )
           s=$1
           shift;;
       esac
       compteur=compteur+1
       if [ $v = 0 ] &&[ $q = 0 ] && [ $s = 0 ]
       then
         break
       fi
       if [ $compteur = 3 ]
       then
         break
       fi
     done
     
     if [ $q = 0 ]
     then
       if [ $s = 0 ]
       then
         signal=SIGTERM #le signal par defaut est SIGTERM
       else
         signal=`echo $s | cut -c2-6` #recupere le signal
       fi
       processus=`ps -e | grep $1 | cut -c1-6` #trouve le pid du process
       kill -n $signal $processus #envoie le signal au processus cible
       if [ $v = 1 ]
       then
         echo "signal $signal envoye a $1"
       fi
     else
       #mode query
       echo "voulez vous killer $1 o n"
       read r
       if [ "$r" = o ]
       then
         if [ $s = 0 ]
         then
           signal=SIGTERM
         else
           signal=`echo "$s" | cut -c2-6`
         fi
         processus=`ps -e | grep $1 | cut -c1-6`
         kill -n $signal $processus
         if [ $v = 1 ]
         then
           echo "signal $signal envoye a $1"
         fi
       fi
     fi
     
     if [ $v = 1 ]
     then
       echo 'fin de traitement'
     fi
    Développeur Java
    Site Web

  13. #33
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Nom du script rename.sh

    Compatible avec: Bash

    Descriptif : rename.sh permet de renomer des fichier conformement à une expression régulière.
    Vous trouverez l'usage de ce scripts en utilisant l'option -h de cet executable.

    Pré-requis: bash

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    #!/bin/bash
     #author : marc AUTRAN
     #Email : xxxxxx@xxxxx.xx
     #date : 22 dec 2002
     #description : script shell qui renome des fichiers conformement a une expression reguliere
     #le renomage se fait via la commande mv
     #ce script fut teste sous linux noyau 2.2.16
     
     
     #traite l'option -h
     for option
     do
       if [ "$option" = -h ]
       then
         echo 'Usage rename.sh [-q] [-v] [-h] <commande> fichier ...'
         echo 'Renome les fichiers en appliquant la commande sur les noms'
         echo '-q : query, demande confirmation pour chaque fichier'
         echo '-v : verbeux, affiche ce qui est fait'
         echo "-h : affichage de ce message d'aide"
         exit
       fi
     done
     
     #traite les options -q et -v
     declare -i compteur=0
     v=0
     q=0
     while [ $# -gt 2 ]
     do
       case $1 in
         -v )
           echo 'debut de traitement ...'
           v=1
           shift;;
         -q )
           q=1
           shift;;
       esac
       compteur=compteur+1
       if [ $v = 0 ] &&[ $q = 0 ]
       then
         break
       fi
       if [ $compteur = 2 ]
       then
         break
       fi
     done
     
     if [ $q = 0 ]
     then
       for name
       do
         if [ "$name" != "$1" ]
         then
           new_name=`echo $name | $1` #determine le nouveau nom
           mv $name $new_name
           if [ $v = 1 ]
           then
               echo "$name renome en  $new_name"
           fi
         fi
       done
     else
       for name
       do
         if [ "$name" != "$1" ]
         then
           new_name=`echo $name | $1`
           echo "voulez vous renomer $name en $new_name o n "
           read r
           if [ "$r" = o ]
           then
             mv $name $new_name
             if [ $v = 1 ]
             then
                 echo "$name renome en  $new_name"
             fi
           fi
         fi
       done
     fi
     
     if [ $v = 1 ]
     then
       echo 'fin de traitement'
     fi
    Développeur Java
    Site Web

  14. #34
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 539
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 539
    Points : 19 360
    Points
    19 360
    Par défaut
    Bonjour,

    les options d'un script devraient être traitées avec getopts.
    il y a une faute de frappe ligne 40 : &&[.
    les nombres devraient être comparés avec un opérateur arithmétique : test $n = 0 -> test $n -eq 0 (cf. help test); voire avec une simple évaluation arithmétique : if ((!n)); then;...; fi. .
    new_name=`echo $name | $1` ça semble une erreur, que veux-tu faire ici ?
    il vaudrait mieux tester l'existence de $q dans une seule boucle, plutôt que de faire deux boucles quasi identiques dans le test.

    rename existe (pas sur tous les systèmes GNU/linux ?), et utilise des regex perl.
    pkill existe, et utilise des regex étendues.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  15. #35
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    Bonjour,

    tout d'abord, ces 2 scripts et particulièrement rename.sh ont été écrits il y a 13 ans pour un TP lorsque j'étais étudiant. Depuis, j'imagine que ces fonctionnalités sont devenues des standard du shell. Mais à l'époque rien n'existait sinon je ne les auraient pas inventés.

    Pour le &&[ tu as raison il faut && [

    Quant au new_name=`echo $name | $1`, je souhaitais traiter, ou plutôt je traitais $1 qui contenait le nom de la commande et $name le nom du fichier ... quand je disais que rien n'existait à l'époque, peut etre que le rename actuel ne prend traite pas cette option.

    Pour les tests tu as sans doute raison, je ne suis pas assez bon en bash pour me prononcer. En fait à cette époque dans cette école d'ingénieur, on parlait essentiellement C et C++ je n'ai fait ces 2 scripts que pour un cours de shell.

    marc,
    Développeur Java
    Site Web

  16. #36
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    N_BaH,

    Je viens également de me rendre compte que tu avais masqué l'adresse mail dans le script.

    Je ne savais pas qu'il fallait l'enlever, j'ai fait un copier coller brut. De toute façon cette adresse a été résilié depuis 10 ans que j'ai quitté l'ENSTA

    alors mille excuses pour cette maladresse

    Marc
    Développeur Java
    Site Web

  17. #37
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 539
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 539
    Points : 19 360
    Points
    19 360
    Par défaut
    ces 2 scripts [...] ont été écrits il y a 13 ans
    pourquoi les poster maintenant ?
    certains débutant pourraient, d'ailleurs, prendre tes maladresses pour exemple.

    j'ai masqué l'adresse e-mail pour te protéger : une jolie fille ne devrait pas porter un t-shirt indiquant son 06.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  18. #38
    Membre du Club
    Homme Profil pro
    Technicien d'étude
    Inscrit en
    Septembre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien d'étude

    Informations forums :
    Inscription : Septembre 2007
    Messages : 56
    Points : 49
    Points
    49
    Par défaut Lecteur mp3 en ligne de commande
    Nom du script: Lecteur mp3 en ligne de commande

    Compatible avec: Bash

    Descriptif: Remplacer vlc ou autre player pour écouter de la musique sur son PC. Ce script peut être lancé avec trois paramètres : le dossier, la lecture (séquentielle ou aléatoire) ainsi que, le cas échéant, la durée au bout de laquelle il va s'arrêter de lui même. C'est pratique par exemple pour en faire un réveil "croné".

    Pré-requis: le paquetage mpg123

    Améliorations à prévoir:
    1. Non pas imposer une arborescence mais offrir la possibilité d'en parcourir une à partir d'une base choisie.
    2. J'ai un bug ligne 84, si la valeur n'est pas définie.


    Code:
    #!/bin/bash
    # =============================================================================
    # mp3 player
    # Alain BACH le 15/09/2015
    # =============================================================================

    basepath=/home/$LOGNAME/Musique

    # clear
    echo "$1 $2 $3"

    choix=$1
    ordre=$2
    temps=$3

    if [ "x$1" = "x" ];
    then
    echo "A - Musique des années 80 : France"
    echo "B - Musique des années 80 : International"
    echo "C - Musique des années 80 : TOUT"
    echo "D - Musique classique"
    echo " "
    echo "Faites votre choix"
    read choix

    echo " "
    echo "R - Ordre aléatoire"
    echo "S - Ordre séquentiel"
    echo " "
    read ordre

    echo " "
    echo "Quelle temporisation (en minutes) ?"
    read temps
    $temps=$temps*60

    elif [ "x$2" = "x" ]
    then
    echo " "
    echo "R - Ordre aléatoire"
    echo "S - Ordre séquentiel"
    echo " "
    read ordre
    choix=$1

    echo " "
    echo "Quelle temporisation (en minutes) ?"
    read temps
    $temps=$temps*60

    fi

    case $ordre in
    S | s )
    ordre=""
    ;;
    R | r )
    ordre="-Z"
    ;;
    * )
    ordre=""
    ;;
    esac

    case $choix in
    A | a )
    chemin=$basepath"/annees\ 80/France"
    commande="find "$chemin" -iname "*.mp3" | mpg123 $ordre -q --list -"
    ;;
    B | b )
    chemin="$basepath/annees\ 80/International"
    commande="find "$chemin" -iname "*.mp3" | mpg123 $ordre -q --list -"
    ;;
    C | c )
    chemin="$basepath/annees\ 80"
    commande="find "$chemin" -iname "*.mp3" | mpg123 $ordre -q --list -"
    ;;
    D | d)
    chemin="$basepath/classique"
    commande="find "$chemin" -iname "*.mp3" | mpg123 $ordre -q --list -"
    ;;
    esac

    if [ $temps -gt 0 ] ;
    then
    commande="$commande & sleep $temps && pid1=\$! && kill \$pid1"
    fi

    clear
    echo " "
    echo "$commande"
    eval $commande

    exit 0;

  19. #39
    Membre du Club
    Homme Profil pro
    Technicien d'étude
    Inscrit en
    Septembre 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien d'étude

    Informations forums :
    Inscription : Septembre 2007
    Messages : 56
    Points : 49
    Points
    49
    Par défaut Stratégie de sauvegarde
    Nom du script: Sauvegarde des données

    Compatible avec: Bash

    Descriptif:Je suis un peu maniaque en ce qui concerne la sauvegarde de mes données... souvenir d'un temps où j'exerçais des responsabilités dans ce domaine.
    Je me suis donc attelé à écrire une stratégie de sauvegarde "à ma façon", en tenant compte des possibilités dont je dispose.
    Ces possibilités, quelles sont-elles :
    • Un disque externe de 1To branché en USB3 sur mon PC
    • Un Raspberry connecté en filaire sur mon réseau
    • Un cloud hébergé sur mon site Internet chez OVH
    • Un cloud chez Adrive


    Je voulais aussi rapatrier les sites Internet que je gère pour les sauvegarder et sauver les machines virtuelles que j'utilise.

    J'ai analysé les flux pour optimiser les temps en fonction des goulots d'étranglements et me permettre de reprendre la main le plus vite possible sur mon PC et reprendre le cours normal de mes activités.

    Je voulais rendre cette sauvegarde souple, me permettant de lancer l'un, l'autre ou tous les éléments selon mon envie ou mon besoin tout en intégrant une planification en fonction du jour de la semaine.

    Le résultat ? le voilà.

    J'en parle aussi sur mon site Internet personnel.

    Pré-requis: le paquetage mpg123 pour la notification sonore.

    Nota : le programme principal, celui à lancer, est sauvegarde.sh

    Le programme : scripts.zip

  20. #40
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 539
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 539
    Points : 19 360
    Points
    19 360
    Par défaut Lecteur mp3 en ligne de commande
    Bonjour,

    J'ai un bug ligne 84, si la valeur n'est pas définie.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if test ${temps:-0} != 0
    oupourquoi une variable commande alors que la commande est toujours la même ?
    de toute façon, une variable n'est pas faite pour stocker une commande qui doit être exécutée, utilises plutôt une fonction.

    sleep ne retourne jamais 'faux'; à moins qu'il lui manque un paramètre, ou que ce dernier ne soit pas numérique, mais, ça, il faut le tester avant d'appeler la commande.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Script shell
    Par anzar dans le forum Linux
    Réponses: 4
    Dernier message: 03/12/2004, 15h41
  2. [JSP] script shell
    Par goolix dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/08/2004, 10h08
  3. Exécution d'un script shell
    Par Manu0086 dans le forum Linux
    Réponses: 8
    Dernier message: 15/06/2004, 17h31
  4. Explication script shell
    Par crasho007 dans le forum Linux
    Réponses: 2
    Dernier message: 14/06/2004, 14h54
  5. Cron + terminal + script shell
    Par nicolas.pissard dans le forum Linux
    Réponses: 3
    Dernier message: 17/03/2004, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo