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 :

boucle While ne me rend pas la main


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Par défaut boucle While ne me rend pas la main
    Bonjour à tous,

    je galère sur un sujet un peu ambigue dans ma tête d'informaticien lol

    Je souhaite vérifier le checksum de fichiers d'un répertoire local, ensuite celui du même répertoire que j'ai sauvegardé à distance

    Le checksum est ok, par contre j'ai du mal avec la boucle while.

    Merci à vous, toute aide sera la bienvenue

    Voici mon petit script :

    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
    #!/bin/bash
    set -x
    log_file="/home/moi/tmp/log"
     
    touch /home/moi/tmp/log
     
    while read line
    do
            RCRC="cksum /datas/${line} | awk '{print $1$2}'"
            LCRC="cksum /backup/${line} | awk '{print $1$2}'"
     
            if [ "$RCRC" -ne "$LCRC" ]
            then
                    printf "ERREUR - fichier corrompu.\n" >> ${log_file}
                    echo ${line} >> ${log_file}
                    printf "\n" >> ${log_file}
                    ((error++))
            else
                   printf "CRC vérifié avec succès.\n" >> ${log_file}
           fi
    done

  2. #2
    Expert confirmé

    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
    Par défaut
    Salut,

    Tout simplement parce qu'il faut lui donner du grain à moudre à ton moulin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while read line
    do
    ...
    ...
    ...
    done < grain_à_moudre

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Par défaut
    Oui, en effet, mes recherches ont abouti à la même conclusion lol

    le fichier que je veux donc donner à moudre à ma commande while comporte des choses que je veux remplacer.

    Voici mon rapport

    /datas/public/570/file

    voici ce que je souhaiterai :

    570/file

    j'ai titillé la commande sed sans grand succès... J'arrive bien à supprimer les datas et public mais ça me donne ceci :

    ///570/file

    Merci pour votre aide

  4. #4
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ~$ echo /datas/public/570/file |  sed 's/\/dat.*ic\///'
    570/file
    ~$

  5. #5
    Expert confirmé

    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ echo "/datas/public/570/file" | sed 's#.*/\([^/]*/.*\)#\1#'
    570/file
     
    $ echo "/datas/public/prive/570/file" | sed 's#.*/\([^/]*/.*\)#\1#'
    570/file
     
    $ echo "/datas/public/prive/commun/570/file" | sed 's#.*/\([^/]*/.*\)#\1#'
    570/file
     
    $

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Dans ton script initial tu as aussi des " là où tu devrais avoir des `

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/11/2007, 11h33
  2. Réponses: 1
    Dernier message: 15/05/2007, 09h16
  3. le Timer ne me rend pas la main
    Par toxycyty dans le forum Windows
    Réponses: 10
    Dernier message: 08/11/2006, 16h54
  4. RMAN ne rend pas la main
    Par big1 dans le forum Recovery Manager
    Réponses: 3
    Dernier message: 29/08/2006, 20h18
  5. Script CMD qui ne rend pas la main
    Par ipeteivince dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 10/06/2005, 11h00

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