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 :

[bash] Construire une variable texte avec retours chariot


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Par défaut [bash] Construire une variable texte avec retours chariot
    Bonjour à tous,

    Je m'arrache les cheveux avec un script de backup que je n'arrive pas à finaliser

    Ce que je veux faire est simple : déclarer une variable en début de script, (cette variable sera le corps du mail envoyé à la fin de l'execution du script) puis au fur et à mesure des actions, incrémenter cette variable par des lignes de texte pour logguer le déroulement du backup.

    Donc voici le genre d'erreurs que j'ai :
    ./essai.sh: line 6: let: teste. à quelle heure ?: syntax error: invalid arithmetic operator (error token is ". à quelle heure ?")
    avec ce simple test (je l'ai isolé du script de backup pour être sur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #!/bin/bash
     
    MAVAR="je teste"
     
    let MAVAR="$MAVAR à quelle heure ?"
     
    echo $MAVAR
    Bref j'ai beau chercher sur le net, je ne trouve rien qui m'aide vraiment...

    Merci d'avance pour votre aide !

  2. #2
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    met un \n

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ MAVAR='coucou\ntoi'
    $echo $MAVAR
    coucou
    toi
    $
    Et met des simple quote si t'as des caractères spéciaux !

    ps : je ne connais pas ta version de bash mais dans le doute, fait plutot des echo -e pour interpréter le \n si ça marche pas
    sinon encore plus simple rajoute alias echo='echo -e' dans le début de ton script (juste après le #!/bin/bash) au lieu de mettre partout echo -e $var

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Par défaut
    Salut,

    Merci pour cette réponse rapide, mais ce que je cherche avant tout c'est à construire la variable sur en plusieurs lignes/etapes.

    Il me faut donc concaténer une nouvelle ligne à ma variable d'origine à chaque fois et c'est ca qui semble poser problème...

  4. #4
    Membre émérite
    Avatar de SnakemaN
    Profil pro
    Bidouille-tout Android
    Inscrit en
    Juillet 2006
    Messages
    871
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Bidouille-tout Android

    Informations forums :
    Inscription : Juillet 2006
    Messages : 871
    Par défaut
    Je vois pas ou est le pb ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ var='toto'
    $ echo $var
    toto
    $ var=$var'\ntata'
    $ echo $var
    toto
    tata
    $
    c'est ça ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Par défaut
    Citation Envoyé par SnakemaN Voir le message
    Je vois pas ou est le pb ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $ var='toto'
    $ echo $var
    toto
    $ var=$var'\ntata'
    $ echo $var
    toto
    tata
    $
    c'est ça ?
    Oui, merci beaucoup, en fait j'utilisais mal les double quotes et même en tatonnant je ne suis pas tombé sur ta syntaxe qui est la bonne.

  6. #6
    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
    Citation Envoyé par vallica Voir le message
    Bonjour à tous,

    Je m'arrache les cheveux avec un script de backup que je n'arrive pas à finaliser

    Ce que je veux faire est simple : déclarer une variable en début de script, (cette variable sera le corps du mail envoyé à la fin de l'execution du script) puis au fur et à mesure des actions, incrémenter cette variable par des lignes de texte pour logguer le déroulement du backup.
    quelle prise de tete inutile :

    exemple plus simple pour faire la meme chose

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    (
    actions
    actions
    actions
    ) > $FIC_LOG
     
    #[...]
     
    mailx $destinataire << EOF > /dev/null
    ~s Compte rendu ($choix_societe) depuis le $date_jour
    ~<! cat $FIC_LOG
    ~.
    EOF

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/07/2011, 10h01
  2. Récupérer un texte avec retour chariot
    Par DeveloppeurWeb dans le forum ASP
    Réponses: 5
    Dernier message: 04/11/2010, 15h18
  3. Format Text avec retour chariot
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 18/01/2007, 13h34
  4. Export champ 'text' avec retour chariot
    Par wizdom dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 22/09/2006, 16h02
  5. afficher texte avec retour chariot aprèq requète sql
    Par frenchy371 dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 17h33

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