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 :

Script de sauvegarde que je souhaite faire évoluer


Sujet :

Shell et commandes GNU

  1. #41
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 280
    Points : 12 729
    Points
    12 729
    Par défaut
    1) Oui, pour être plus clair, il faut un séparateur de commande, donc le ';' ou le '\n'.
    2) Oui, on a dit qu'elles étaient inutiles ici.
    Cordialement.

  2. #42
    Invité
    Invité(e)
    Par défaut


    ok, script modifié et fonctionnel... pour l'instant :

    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
    #!/bin/bash
    #
    # Ce script permet de faire une sauvegarde incrémentale manuelle avec "rsync"
     
    Date=$(date +%d-%m-%Y)
    Heure=$(date +%T)
    echo -e "Exécuter SOV1 ? [o/N]"; # Pour plus de lisibilité, la réponse par défaut est donnée en majuscule à la suite de la question.
    read -sn1;                             # Inutile d'entrer plus d'un caractère, ni d'appuyer sur la touche entrée.
    if [[ $REPLY =~ [yYoO] ]]              # La variable REPLY est automatiquement créée par la fonction read du bash (builtins)
        then
        echo -e "\n Lancement sauvegarde à\n $Heure le $Date\n"
            else
            echo -e "\n Procédure SOV1 interrompue par l'utilisateur à $Heure le $Date\n";
            echo -e "\n Sortie SOV1\n"; exit;
    fi
     
    # pour donner un nom "raccourci" (incluant le chemin) au fichier backuperror.log :
    backup=/home/bernard/bin/Sauvegardes/backuperrorSOV1.log
     
    # à noter l'usage des ">" :
    # Un seul ">" renvoie le contenu du terminal dans le fichier indiqué
    # en écrasant tout ce que contient déjà ce fichier.
    # ">>" renvoie le contenu du terminal sans écraser ce que contient déjà le fichier.
    # Le chiffre "2" suivi d'un seul ">" renvoie seulement les messages d'erreurs
    # générés par le processus dans le fichier indiqué en écrasant le contenu de ce fichier.
    # "2>>" renvoie les erreurs sans écraser le contenu du fichier.
     
    #SSD32Go
    if [[ "`df --output=source /media/bernard/ | tail -1`" != "`df --output=source /media/bernard/SSD32Go/ | tail -1`" ]] # vérifie que la chaine, résultat du premier df, est différente du deuxième df, si identique = support absent
        then echo -e "\n Synchronisation en cours sur SSD32Go\n"
        rsync --archive --partial --progress --delete-during --stats /home/bernard/.thunderbird /media/bernard/SSD32Go/ 2>> "$backup"; retour_rsync=$?
        echo
        echo -e " rsync a retourné ${retour_rsync}"
        echo
            else echo -e "connectez le support manquant, puis validez par o ? [o/N]"; # support manquant, le connecter ou pas...
            read -sn1;
                if [[ $REPLY =~ [yYoO] ]]
                then echo -e "\n Lancement sauvegarde à\n $Heure le $Date\n" ;
                echo -e "\n Synchronisation en cours sur SSD32Go\n"
                rsync --archive --partial --progress --delete-during --stats /home/bernard/.thunderbird /media/bernard/SSD32Go/ 2>> "$backup"; retour_rsync=$?
                    else echo -e "\n !!! abandon sauvegarde sur support SSD32Go absent !!!\n";
                    fi
    fi
    #
    if [ ${retour_rsync} -ne 0 ];
        then echo -e "y a un pb sur support SSD32Go";
    fi
     
    #SSHD500-1
    if [[ "`df --output=source /media/bernard/ | tail -1`" != "`df --output=source /media/bernard/SSHD500-1/ | tail -1`" ]]
        then echo -e "\n Synchronisation en cours sur SSHD500-1/\n"
        rsync --archive --partial --progress --delete-during --stats --exclude="/media" --exclude="/proc" --exclude="/sys" / /media/bernard/SSHD500-1/ 2>> "$backup"; retour_rsync=$?
        echo
        echo -e " rsync a retourné ${retour_rsync}"
        echo
            else echo -e "connectez le support manquant, SSHD500-1, puis validez par o ? [o/N]";
            read -sn1;
                if [[ $REPLY =~ [yYoO] ]]
                    then echo -e "\n Lancement sauvegarde à\n $Heure le $Date\n" ;
                            echo -e "\n Synchronisation en cours sur SSHD500-1/\n"
                            rsync --archive --partial --progress --delete-during --stats --exclude="/media" --exclude="/proc" --exclude="/sys" / /media/bernard/SSHD500-1/ 2>> "$backup"; retour_rsync=$?
                            else echo -e "\n !!! abandon sauvegarde sur support SSHD500-1/ absent !!!\n";
                fi
    fi
    #
    if [ ${retour_rsync} -ne 0 ];
        then echo -e"y a un pb sur support SSHD500-1/";
    fi
     
    # Vérification des liens = faite
    # Insertion de la date à la fin de la liste d'erreur si le fichier backuperror
    # n'est pas vide (c'est à dire s'il y a des erreurs), ce que vérifie l'option "-s" :
     
    if [ -s "$backup" ]; 
    then date >> "$backup";
    fi
        # Mise à jour de l'heure
        Heure=$(date +%T)
        echo -e "\n Sauvegarde terminée à\n $Heure le $Date\n"
    # ---- fin du script ----
    La partie support manquant, est-elle "lourde" ou "normale"...

    y aurait-il la possibilité de faire plus "simple"... ?


    edit 1 : suppression de toutes les couleurs + mise en "page" + remplacement des tabulations par des espaces...
    Dernière modification par Invité ; 26/04/2018 à 22h50.

  3. #43
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 345
    Points : 539
    Points
    539
    Par défaut
    Salut,
    Toutes ces couleurs, c'est bien, mais on met ça à la fin quand c'est fonctionnel.
    Là, ça fait beaucoup de ligne de code pour rien et ça ne donne pas envie de le lire pour essayer de résoudre les dysfonctionnements AMHA.
    Cordialement.

  4. #44
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Quel éditeur utilises-tu pour éditer ton code?

    L'indentation présente un mélange de tabulations et d'espaces, ce qui fait que ce code hétérogène est difficile à lire à cause de son indentation.

    Si l'éditeur le permet, ce serait bien de lui demander de tout indenter correctement. Sinon tu peux aussi lui demander de remplacer chaque tabulation par 4 ou 8 espaces (suivant le décalage utilisé).

  5. #45
    Invité
    Invité(e)
    Par défaut
    J'ai supprimé toutes les couleurs et "fioritures" dans le script.
    j'utilise geany comme éditeur.
    tabulation à 4 espaces !
    Dernière modification par Invité ; 26/04/2018 à 22h52.

  6. #46
    Invité
    Invité(e)
    Par défaut

    voici le script que j'ai modifié, ai "démaquillé" de mes fioritures et mon nom, remplacé par USER :
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    #!/bin/bash
    # Ce script permet de faire une sauvegarde incrémentale manuelle avec "rsync"
     
    Date=$(date +%d-%m-%Y)
    Heure=$(date +%T)
    backup=/home/USER/bin/Sauvegardes/backuperrorSovTotale-1-a.log
    echo -e "Exécuter SOV2 ? [o/N]";
    read -sn1;
    if [[ $REPLY =~ [yYoO] ]]
      then
      echo -e "\n\n Lancement sauvegarde à $Heure le $Date\n\n"
        else
        echo -e "\n    Procédure SOV2 interrompue par utilisateur à $Heure le $Date\n";
        echo -e "\n Sortie SOV2\n"; exit;
    fi
     
    #SSD32Go-1
    if [[ "`df --output=source /media/USER/ | tail -1`" != "`df --output=source /media/USER/SSD32Go/ | tail -1`" ]]
      then echo -e "\n\n\n Synchronisation en cours sur  SSD32Go\n\n"
      rsync --archive --partial --progress --delete-during --stats /home/USER/.thunderbird /media/USER/SSD32Go/ 2>> "$backup"; retour_rsync=$?
      echo
      echo -e " rsync a retourné ${retour_rsync}"
      echo
      else echo -e "connectez le support manquant, puis validez par o ? [o/N]";
      read -sn1;
        if [[ $REPLY =~ [yYoO] ]]
          then	echo -e "\n\n Lancement sauvegarde à $Heure le $Date\n\n" ;
          echo -e "\n\n\n Synchronisation en cours sur SSD32Go\n\n"
          rsync --archive --partial --progress --delete-during --stats /home/USER/.thunderbird /media/USER/SSD32Go/ 2>> "$backup"; retour_rsync=$?
          else echo -e "\n !!! abandon sauvegarde sur support SSD32Go absent !!!\n";
        fi
    fi
     
    #SSHD500-1-2
    if [[ "`df --output=source /media/USER/ | tail -1`" != "`df --output=source /media/USER/SSHD500-1/ | tail -1`" ]]
      then echo -e "\n\n\n Synchronisation en cours sur SSHD500-1\n\n"
      rsync --archive --partial --progress --delete-during --stats --exclude="/media" --exclude="/proc" --exclude="/sys" / /media/USER/SSHD500-1/ 2>> "$backup"; retour_rsync=$?
        echo
        echo -e " rsync a retourné ${retour_rsync}"
        echo
      else echo -e "connectez le support manquant, SSHD500-1, puis validez par o ? [o/N]";
      read -sn1;
        if [[ $REPLY =~ [yYoO] ]]
          then	echo -e "\n\n Lancement sauvegarde à $Heure le $Date\n\n" ;
          echo -e "\n\n\n Synchronisation en cours sur SSHD500-1\n\n"
          rsync --archive --partial --progress --delete-during --stats --exclude="/media" --exclude="/proc" --exclude="/sys" / /media/USER/SSHD500-1/ 2>> "$backup"; retour_rsync=$?
          else echo -e "\n !!! abandon sauvegarde sur support SSHD500-1 absent !!!\n";
        fi
    fi
     
    #SSHD500-2-3
    if [[ "`df --output=source /media/USER/ | tail -1`" != "`df --output=source /media/USER/SSHD500-2 | tail -1`" ]]
      then echo -e "\n\n\n Synchronisation en cours sur SSHD500-2\n\n"
      rsync --archive --partial --progress --delete-during --stats --exclude="/media" --exclude="/proc" --exclude="/sys" / /media/USER/SSHD500-2/ 2>> "$backup"; retour_rsync=$?
        echo
        echo -e " rsync a retourné ${retour_rsync}"
        echo
      else echo -e "connectez le support manquant, SSHD500-2, puis validez par o ? [o/N]";
      read -sn1;
        if [[ $REPLY =~ [yYoO] ]]
          then	echo -e "\n\n Lancement sauvegarde à $Heure le $Date\n\n" ;
          echo -e "\n\n\n Synchronisation en cours sur SSHD500-2\n\n"
          rsync --archive --partial --progress --delete-during --stats --exclude="/media" --exclude="/proc" --exclude="/sys" / /media/USER/SSHD500-2/ 2>> "$backup"; retour_rsync=$?
          else echo -e "\n !!! abandon sauvegarde sur support SSHD500-2 absent !!!\n";
        fi
    fi
     
    #DD1To-4
    if [[ "`df --output=source /media/USER/ | tail -1`" != "`df --output=source /media/USER/Sauv1To-a/ | tail -1`" ]]
      then echo -e "\n\n\n Synchronisation en cours sur Sauv1To-a\n\n"
      rsync --archive --partial --progress --delete-during --stats /home /media/USER/Sauv1To-a/SauvDdPrincipal1/ 2>> "$backup"; retour_rsync=$?
        echo
        echo -e " rsync a retourné ${retour_rsync}"
        echo
      else echo -e "connectez le support manquant, Sauv1To-a, puis validez par o ? [o/N]";
      read -sn1;
        if [[ $REPLY =~ [yYoO] ]]
          then	echo -e "\n\n Lancement sauvegarde à $Heure le $Date\n\n" ;
          echo -e "\n\n\n Synchronisation en cours sur Sauv1To-a\n\n"
            rsync --archive --partial --progress --delete-during --stats /home /media/USER/Sauv1To-a/SauvDdPrincipal1/ 2>> "$backup"; retour_rsync=$?
          else echo -e "\n !!! abandon sauvegarde sur support Sauv1To-a/ absent !!!\n";
        fi
    fi
     
    #DD500Go-5
    if [[ "`df --output=source /media/USER/ | tail -1`" != "`df --output=source /media/USER/Sauv500Go/ | tail -1`" ]]
      then echo -e "\n\n\n Synchronisation en cours sur Sauv500Go\n\n"
      rsync --archive --partial --progress --delete-during --stats /home /media/USER/Sauv500Go/SauvDdPrincipal2/ 2>> "$backup"; retour_rsync=$?
        echo
        echo -e " rsync a retourné ${retour_rsync}"
        echo
      else echo -e "connectez le support manquant, Sauv500Go, puis validez par o ? [o/N]";
      read -sn1;
        if [[ $REPLY =~ [yYoO] ]]
          then	echo -e "\n\n Lancement sauvegarde à $Heure le $Date\n\n" ;
          echo -e "\n\n\n Synchronisation en cours sur Sauv500Go\n\n"
            rsync --archive --partial --progress --delete-during --stats /home /media/USER/Sauv500Go/SauvDdPrincipal2/ 2>> "$backup"; retour_rsync=$?
          else echo -e "\n !!! abandon sauvegarde sur support Sauv500Go/ absent !!!\n";
        fi
    fi
     
     
    if [ -s "$backup" ]; 
    then date >> "$backup";
    fi
     
    	Heure=$(date +%T)
    	echo -e "\n Sauvegarde terminée à $Heure le $Date\n"
    # ---- fin du script ----
    Qu'en pensez-vous ?



    J'ai supprimé, à la fin de chaque sauvegarde de support :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if [ "${retour_rsync}" -ne 0 ];
    	then echo -e $ROUGE "y a un pb sur support SSD32Go";
    fi
    où j'obtenais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /home/USER/MesScripts/SOV1.sh: ligne 56 : [: -ne : opérateur unaire attendu
    étant dans l'incapacité de lui répondre, je l'ai... zou !
    mais, si vous y voyez une amélioration dans ces lignes, merci de m'indiquer ce "qu'il" attend...



    j'ai encore un p'tit souci, mais il est "p'tit"... nous en discuterons après

    Bonne fin de semaine Ensoleillée

  7. #47
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Citation Envoyé par dev871 Voir le message
    Qu'en pensez-vous ?
    Tu mens !
    Si je lance ton script à midi et je pars faire un golf, je reviens à 19h pour répondre à la question Exécuter SOV2 ? [o/N] d'un "N" ferme et définitif, alors le script me dit que j'ai interrompu le script à midi.
    C'est faux. Pourquoi mentir ? Es-tu un genre d'agent de la NSA payé pour introduire des backdoors dans les scripts ?



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if [[ $REPLY =~ [yYoO] ]]
      then
      echo -e "\n\n Lancement sauvegarde à $Heure le $Date\n\n"
        else
        echo -e "\n    Procédure SOV2 interrompue par utilisateur à $Heure le $Date\n";
        echo -e "\n Sortie SOV2\n"; exit;
    fi
    C'est la vraie indentation ? Si c'est aussi clair dans ton esprit que mal indenté dans ton texte, je comprends que tu aies des questions.
    Pourquoi "then" est avancé ?
    Pourquoi "else" est sur-avancé ?
    Ces 2 mots-clé ne sont-ils des éléments de la structure du "if" ?
    Pourquoi les alternatives ne sont-elles pas au même niveau ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if [[ $REPLY =~ [yYoO] ]]
    then
        echo -e "\n\n Lancement sauvegarde à $Heure le $Date\n\n"
    else
        echo -e "\n    Procédure SOV2 interrompue par utilisateur à $Heure le $Date\n";
        echo -e "\n Sortie SOV2\n"; exit;
    fi
    Ne trouves-tu pas cela plus lisible ?

    étant dans l'incapacité de lui répondre, je l'ai... zou !
    Plutôt que de corriger une syntaxe impropre, tu supprimes le code ?
    Et dans tes pulls ? Tu découpes la tache ?
    S'il t'attaque sur le crochet (qui n'est qu'un raccourci pour la commande test) c'est probablement que la variable "$retour_rsync" est complètement vide.
    D'où la faute de syntaxe.

    J'ai supprimé toutes les couleurs
    Ça évite de voir que les variables de couleurs n'étaient pas protégées alors que c'était le premier conseil donné.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  8. #48
    Invité
    Invité(e)
    Par défaut
    Merci pour tes retours

    Citation Envoyé par Flodelarab Voir le message
    ...
    bon... j'suis démasqué

    ceci plaisantait :
    + j'utilise geany, est-ce le bon éditeur ?
    comment "faire" pour obtenir les indentations automatiques ?

    + j'ai changé la place de la sortie par l'utilisateur... est-ce cela qui fait que... ?
    à moins que je n'ai oublié une commande dans la ligne, pour indiquer l'heure de la clôture réelle ?

    + la variable "$retour_rsync" est effectivement vide, lorsque c'est sans erreur...

    + toutes les variables, dont celles de couleur, devraient être double crochet ?
    par exemple
    VERT="\\033[1;32m"
    deviendrait
    "VERT"="\\033[1;32m"
    c'est cela ?

  9. #49
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    • toutes les variables, dont celles de couleur, devraient être double crochet ?
      Attention au vocabulaire :
      • ( ) parenthèses ouvrantes et fermantes
      • [ ] crochets ouvrants et fermants
      • ' ' simple quotes (en anglais dans le texte)
      • " " double quotes (en anglais dans le texte)
      • « » guillemets (français)
    • toutes les variables, dont celles de couleur, devraient être double crochet ?
      VERT="\\033[1;32m"
      Pas à ce moment-là. À ce moment-ci:
    • Code : Sélectionner tout - Visualiser dans une fenêtre à part
      echo -e "\n !!! abandon sauvegarde sur support SSHD500-2 absent !!!\n";
      Un espagnol t'expliquerait mieux que moi que, si le point d'exclamation est avant la phrase, il s'écrit à l'envers.
      Alt+! ou Altgr+! ou Alt+173 selon les situations.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      echo -e "\n ¡¡¡ abandon sauvegarde sur support SSHD500-2 absent !!!\n";
      Remarque hautement nécessaire que j'avais oublié dans mon précédent post.
      ¡Olé!
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  10. #50
    Invité
    Invité(e)
    Par défaut


    Tu as parfaitement raison sur l'erreur de vocabulaire... j'ai lu, trop en biais...

    j'ai rectifié, sur mon script, les doubles quotes des variables couleur

    quant au point d'exclamation, j'en ai lu des significations... bouhhh
    pour mi, je prends l'explication du code de la route :
    danger, faire attention, etc...

    cependant, merci pour la connaissance pour le ¡ espagnol, que je méconnaissais

    Bon 1er Mai et Muguet

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 387
    Points
    19 387
    Par défaut
    Un espagnol t'expliquerait mieux que moi que, si le point d'exclamation est avant la phrase, il s'écrit à l'envers.
    en espagnol, pas en français.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  12. #52
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    en espagnol, pas en français.
    C'est ma faute, à moi, si son message à l'utilisateur commence par des points d'exclamations ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 387
    Points
    19 387
    Par défaut
    ta remarque aurait eu du sens si le message du script avait été en espagnol.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Réponses: 40
    Dernier message: 12/05/2023, 10h39
  2. Réponses: 3
    Dernier message: 13/12/2017, 17h25
  3. if qui ne fait pas ce que je souhaite faire.
    Par Antoniom dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 10/12/2010, 12h04
  4. Que choisir pour faire un Client/Serveur
    Par Crayon dans le forum Composants VCL
    Réponses: 5
    Dernier message: 10/04/2005, 17h43

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