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 :

Enchaînement d'instructions dans un fichier shell


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut Enchaînement d'instructions dans un fichier shell
    Bonjour,

    Je cherche à enchaîner plusieurs instructions dans mon fichier shell :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/bash
    curl -XPOST 'http://localhost:9200/test/test2/' -d @fichier01.json
    curl -XPOST 'http://localhost:9200/test/test2/' -d @fichier02.json
    curl -XPOST 'http://localhost:9200/test/test2/' -d @fichier03.json
    Je pense que ma syntaxe n'est pas bonne mais je ne trouve pas comment faire (ça fonctionne lorsque je n'est qu'une seule ligne mais dès que j'en met plusieurs ça plante)

    Auriez vous une idée de la syntaxe à utiliser?

    Cordialement.
    Cordialement, le volatile!
    "Crôa, Crôa"

  2. #2
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Bonjour essaye de mettre des ; à la fin de chaque instruction pour indiqué que celle-ci est terminé cela vient peut-être de cela.

  3. #3
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    Bon déjà ça me génère une autre erreur, merci. Je vais vérifier que mes 2 derniers fichiers soit correctement écrit et je reviens vers vous si jamais mon problème persiste.
    Cordialement, le volatile!
    "Crôa, Crôa"

  4. #4
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Quand sa plante quel erreur est reporté, à tu vérifié tes url ainsi que tes fichiers ?

  5. #5
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    Bon apparemment mes fichier n'ont pas d'erreur, en exécutant les 3 commandes séparément tout fonctionne bien. Mais même avec les ; j'ai une erreur lors de l’exécution sur le premier fichier du type:

    {"_index":"test","_type":test2","_id":"monID","_version":
    :command not found


    Tandis que le dernier fichier à bien été créer :

    {"_index":"test","_type":test2","_id":"monID","_version":1,"created":true}
    Cordialement, le volatile!
    "Crôa, Crôa"

  6. #6
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
     
    for Variable  in @fichier01.json  @fichier02.json @fichier03.json
    do
          curl -XPOST 'http://localhost:9200/test/test2/' -d $Variable
     
    done
    test ça .Je suis pas sur de la syntaxe

  7. #7
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bash: ./monFichier.sh: line 4: syntax error near unexpected token '$'do\r''
    'ash: ./monFichier.sh: line 4: 'do
    Cordialement, le volatile!
    "Crôa, Crôa"

  8. #8
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/bin/bash
     
    for Variable  in @fichier01.json  @fichier02.json @fichier03.json
    do
          curl -XPOST 'http://localhost:9200/test/test2/' -d $Variable;
     
    done;

    peut-être cela alors.Si sa marche pas il faut essayer de modifier le script pour passer un fichier en argument de ton script ou alors utiliser du récursif peut-être.

  9. #9
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    Même erreur
    Cordialement, le volatile!
    "Crôa, Crôa"

  10. #10
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Je sais pas trop alors mais si tu me dis que sa marcher pour une ligne alors, crée trois scripts bash dans celui que tu exécutes tu fais le curl de ton premier fichier puis à la suite tu appelles tes deux autres script qui contiennent tes deux autres curl .

  11. #11
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    C'est une solutions mais je vais être amené à faire de même avec plusieurs K de fichiers donc c'est long et contraignant
    Cordialement, le volatile!
    "Crôa, Crôa"

  12. #12
    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 392
    Points
    19 392
    Par défaut
    ouah?! c'est la fête à l'orthographe ? c'est halloween, ça fait peur !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bash: ./monFichier.sh: line 4: syntax error near unexpected token '$'do\r''
    ceci suggère que le script a été rédigé sur W$, il faut soit le réécrire sur Linux, soit transformer ses fins de lignes au format UNIX (avec fromdos, par exemple).

    ça plante
    ça plante comment ?
    s'il y en a un, quel est le message d'erreur ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  13. #13
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    Désolé par ça plante j'entendais que ça ne fonctionne pas et me retournais les messages d'erreur cités précédemment. Je suis sur un machine virtuel xubuntu donc je pense pas que cela soit lié.
    Cordialement, le volatile!
    "Crôa, Crôa"

  14. #14
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    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 286
    Points : 12 742
    Points
    12 742
    Par défaut
    Bonjour,
    Pourrais-tu faire un:
    et nous copier/coller le résultat dans une balise CODE?
    Cordialement.

  15. #15
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    pour le cat -A :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/bash ^M$
    ^M$
    for Variable in @fichier01 @fichier02 @fichier03^M$
    do^M$
    ^Icurl -XPOST 'http://localhost:9200/test/test2/' -d $Variable;^M$
    done
    Cordialement, le volatile!
    "Crôa, Crôa"

  16. #16
    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
    Citation Envoyé par Cvanhove Voir le message
    erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bash: ./monFichier.sh: line 4: syntax error near unexpected token '$'do\r''
    'ash: ./monFichier.sh: line 4: 'do
    Citation Envoyé par Cvanhove Voir le message
    Je suis sur un machine virtuel xubuntu donc je pense pas que cela soit lié.
    Franchement, je n'en mettrais pas ma tête à couper... mais ça m'étonnerait vraiment (que ce ne soit pas lié!)!

    Qu'est-ce qui pourrait bien expliquer la présence du \r dans le message d'erreur ???
    si ce n'est un problème de fins de ligne? (que ce soit dos ou macos)

    Avec quel outil as-tu édité ton script?
    [troll on](tu n'as droit qu'à 2 réponses: vi ou emacs...)[troll off]

    Nous attendons avec impatience le résultat du 'cat -A'...

  17. #17
    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
    Citation Envoyé par Cvanhove Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/bash ^M$
    ^M$
    for Variable in @fichier01 @fichier02 @fichier03^M$
    do^M$
    ^Icurl -XPOST 'http://localhost:9200/test/test2/' -d $Variable;^M$
    done
    Oops! J'ai pas été assez rapide à répondre!
    (mais je n'ai pas perdu ma tête, comme prévu! )

    Donc ton fichier contient bien des returns (\r ou ^M) en fin de ligne!

    Un petit coup de dos2unix devrait le remettre d'aplomb!

  18. #18
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    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 286
    Points : 12 742
    Points
    12 742
    Par défaut
    Bon, c'est bien un fichier au format W$ (sauf la derniere ligne), donc pour résoudre, soit dos2unix , soit dans ton cas un petit coups de sed:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -i -e 's/\r//' fichier
    Attention, l'option -i modifie directement le fichier
    Cordialement.

  19. #19
    Membre régulier Avatar de Cvanhove
    Homme Profil pro
    Concepteur Développeur Informatique
    Inscrit en
    Septembre 2014
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur Développeur Informatique

    Informations forums :
    Inscription : Septembre 2014
    Messages : 174
    Points : 70
    Points
    70
    Par défaut
    Effectivement je n'avais pas pensé à cela! Merci les amis! Le sed à tout clean parfaitement et maintenant ça fonctionne parfaitement!

    Bonne continuation!
    Cordialement, le volatile!
    "Crôa, Crôa"

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

Discussions similaires

  1. [XML] Comment écrire des instructions dans un fichier XML
    Par Alexandrebox dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 28/04/2009, 12h50
  2. envoyer une variable php dans un fichier SHELL
    Par diabli73 dans le forum Langage
    Réponses: 5
    Dernier message: 11/12/2008, 14h55
  3. Programme shell pour rechercher un ensemble de lignes dans un fichier
    Par loukili81 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 23/11/2006, 13h27
  4. Liste de fichier dans un script shell
    Par mirlidas dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 21/11/2006, 17h54
  5. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48

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