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 :

Inclure du code bash dans un script bash


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
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut Inclure du code bash dans un script bash
    Bonjour,

    Dans mon script bash je voudrai faire un include comme dans le langage php
    j'ai essayé avec ceci mais ca ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    source /home/serveur/Domotique/ordres/mysql/insert2.sh

    Quand j'execute mon script bash
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    serveur@debian:~$ sh /home/serveur/Domotique/ordres/mysql/e1-off.sh
    /home/serveur/Domotique/ordres/mysql/e1-off.sh: 106: source: not found
    Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/lumiere-salle-informatique-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
    serveur@debian:~$

    avec ceci dans le script qui correspond a la ligne 106
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     source /home/serveur/Domotique/ordres/mysql/insert2.sh
    il m'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     /home/serveur/Domotique/ordres/mysql/e1-off.sh: 106: source: not found
    J'ai donné les droits au fichier pour qu'il soit executable pour tout le monde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -rwxr-xr-x 1 root    root      224 18 août  02:28 insert2.sh*
    Comment faut il faire avec bash, es-ce possible ?
    Merci

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Bonjour,

    source est une commande bash.
    ton script n'est probablement pas exécuter par bash.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    Bonjour,

    source est une commande bash.
    ton script n'est probablement pas exécuter par bash.
    J'ai en entête dans les deux fichiers
    Dans e1-off.sh la ou je veux inclure le fichier "inser2.sh" il y a bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/bash
    .../
    .../
    source /home/serveur/Domotique/ordres/mysql/insert2.sh

    Dans inser2.sh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/bin/bash  
     
    #---------------TEST  ----------------  
    echo "ceci est un test"  
    echo "Si vous voyez ces lignes c'est que le fichier insert2.sh et inseré dans le code"
    Depuis le shell ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    serveur@debian:~$ source /home/serveur/Domotique/ordres/mysql/insert2.sh
    ceci est un test
    Si vous voyez ces lignes c'est que le fichier insert2.sh et inseré dans le code
    serveur@debian:~$
    Mais quel est la solution pour y faire fonctionner depuis un script bash ?
    Pouvez vous me donner un exemple ?
    Comment puis je faire depuis un script bash ?
    Y doit bien y avoir une solution ?

    Merci.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    et comment fais-tu exécuter le script principal ?

    le shebang du script sourcé n'est pas indispensable, puisqu'il s'éxécute dans l'environnement du script principal.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    Bonjour,

    J'execute le script principal comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    serveur@debian:~$ sh /home/serveur/Domotique/ordres/mysql/e1-off.sh
    /home/serveur/Domotique/ordres/mysql/e1-off.sh: 106: source: not found
    Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/lumiere-salle-informatique-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
    serveur@debian:~$
    Merci.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 412
    Par défaut
    Bonjour,

    J'ai donné les droits au fichier principal "e1-off.sh" pour qu'il soit executable pour tout le monde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    root@debian:~# chmod ugo+x /home/serveur/Domotique/ordres/mysql/e1-off.sh
    root@debian:~#
    puis je l'ai executé et ça marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    serveur@debian:~$ /home/serveur/Domotique/ordres/mysql/e1-off.sh
    ceci est un test
    Si vous voyez ces lignes c'est que le fichier insert2.sh et inseré dans le code
    Playing WAVE '/home/serveur/Domotique/x10/son-confirmation/wav/lumiere-salle-informatique-off.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
    serveur@debian:~$
    Merci.

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

Discussions similaires

  1. Inclure un script bash dans une page php
    Par kazylax dans le forum Linux
    Réponses: 1
    Dernier message: 27/01/2009, 16h59
  2. Requête POST dans un script bash
    Par desperado dans le forum Linux
    Réponses: 4
    Dernier message: 11/12/2007, 22h38
  3. exit dans un script bash
    Par yann_m dans le forum Linux
    Réponses: 2
    Dernier message: 08/11/2007, 23h37
  4. [Débutant]Intégrer du perl dans un script bash
    Par kromartien dans le forum Langage
    Réponses: 3
    Dernier message: 05/03/2007, 23h23
  5. [PHP-JS] Inclure du code ASP dans un script PHP
    Par daquin dans le forum Langage
    Réponses: 7
    Dernier message: 04/09/2006, 18h20

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