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 :

Problème avec la commande source


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut Problème avec la commande source
    Bonjour tout le monde
    J'ai un soucis avec la commande source.
    En effet, celle-ci ne fonctionne pas... J'ai regardé avec bashdebug voir ce qui ne passait pas.
    Quand je rentre dans le bash, je vais au ligne suivante ;

    # If not running interactively, don't do anything
    case $- in
    *i*) ;;
    *) return;;
    esac
    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
    
    #!/bin/bash
    #### B) Création de l'environnement virtuel rasa-env pour Installation de rasa et rasa x 
    #############################################################################################
    
    # exécuter le .bashrc (avec conda)
    source ~/.bashrcCONDA
    
    # Vérification environnements virtuels existants
    conda info -e
    
    # MOFIF le 7 octobre 2020
    
    mkdir TP_RASA
    mkdir TP_RASA/CHATBOT_V0
    
    # création de l'environnement virtuel rasa-env avec python 3.7
    ##############################################################
    conda create -n rasa-env python=3.7
    
    # activation de l'environnement
    conda activate rasa-env
    
    # vérification des versions de python
    which python
    python --version
    
    # vérification environnement 
    ls /home/etudiant/miniconda3/envs/rasa-env/
    
    # installation de rasa
    ################################################################
    pip install rasa
    
    # vérification environnement que rasa existe bien !
    ls /home/etudiant/miniconda3/envs/rasa-env/bin/
    
    # récupération du chatbot de base dans le repertoire en cours (/home/etudiant/TP_RASA/CHATBOT_V0)
    # on accepte un "initial model"
    rasa init
    
    # installation de rasa X - interface apprentissage interactif
    #################################################################
    pip install rasa-x -i https://pypi.rasa.com/simple
    
    # vérification 
    conda list
    # Exécution chatbot de base en mode ligne de commande : rasa shell --> intercatif
    rasa shell
    
    # installation de graphviz pour visualisation des stories sous forme de graphe
    ###############################################################################
    conda install -c anaconda graphviz
    
    # installation de spacy pour la partie nlu
    ###########################################
    pip install rasa_nlu[spacy]
    
    # Exécution de rasa x - interface graphique --> nécessite d'accepter la licence la première fois
    # répondre Yes,  Yes et no
    rasa x
    
    # Exportation de l'environnement créé
    conda env export > env_rasa_aip_brehat.yml
    
    # le fichier ainsi généré peut servir à recréer un environnent directement. 
    
    done

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

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

    quel est le comportement attendu ?
    quel est le comportement obtenu ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Bonjour

    Qui es-tu ? Qui source ?
    Car la signification du tilde "~" change en même temps que l'utilisateur.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    quel est le comportement attendu ?
    quel est le comportement obtenu ?
    bonjour N_BaH;,
    Je dois normalement lancer des commandes conda. notamment
    Hors celle-ci ne sont pas reconnu. Il me dit commande inconnu.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Bonjour

    Qui es-tu ? Qui source ?
    Car la signification du tilde "~" change en même temps que l'utilisateur.
    bonjour Flodelarab
    Je suis en session normal non adminstrateur, mais en ligne de commande simple cela fonctionne.
    Je n'ai pas changé de user.
    Si je rentre les commandes les unes après les autres, j'obtiens le résultat escompté, à savoir les commandes conda sont reconnu.

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 342
    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 342
    Par défaut
    On comprend pas tout...

    conda s'installe chez l'utilisateur et est utilisable si quand tu te connecte sur le dit utilisateur, celui-ci initie au moins le env (base) de conda.

    En gros, il rajoute le chemin de conda dans le PATH et configure 3, 4 variables.

    Si lors de l'installation, tu n'a pas donné ton accord, dans ce cas conda n'a pas modifié les fichiers de conf de bash et donc il ne trouvera pas le chemin de la commande.

    Et donc, déjà on ne connait pas ton contexte d'installation ni ton contexte d'exécution de ton script...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Bonjour, voici le premier script qui permet de mettre en place miniconda :

    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
    #!/bin/bash
    #script de serpent pour pc sympa
    #""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    #  Auteur : .....								
    #  Date : 16-09-2020									
    # Installation d'un poste 
    # système : linux 18.04lts  								
    # Version : 1.0 					
    #""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
     
    #déclaration des balises de couleur pour l'installation
    noir='\033[30m'
    rouge='\033[31m'
    vert='\033[32m'
    jaune='\033[33m'
    bleu='\033[34m'
    magenta='\033[35m'
    cyan='\033[36m'
    blanc='\033[37m'
    stty -ixon
    # création de l'environnement conda 
    echo -e "$rouge installation de l'environnement CONDA"
    cd /home/aip
    cp .bashrc .bashrc2
    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    chmod u+x Miniconda3-latest-Linux-x86_64.sh
    ./Miniconda3-latest-Linux-x86_64.sh -uy
    cp .bashrc .bashrcCONDA
    Donc logiquement j'enchaine le deuxième scripts avec mon fichier source préconfiguré pour conda.

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    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 102
    Par défaut
    Citation Envoyé par noir_desir Voir le message
    Bonjour tout le monde
    J'ai un soucis avec la commande source.
    En effet, celle-ci ne fonctionne pas...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    #### B) Création de l'environnement virtuel rasa-env pour Installation de rasa et rasa x 
    #############################################################################################
    
    # exécuter le .bashrc (avec conda)
    source ~/.bashrcCONDA
    
    ...
    Juste pour vérifier l'existence et la lisibilité du fichier, peux-tu ajouter (temporairement) une ligne dans ton script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #!/bin/bash
    #### B) Création de l'environnement virtuel rasa-env pour Installation de rasa et rasa x 
    #############################################################################################
    
    # Vérifier l'existence et les droits de lecture du fichier:
    ls -l ~/.bashrcCONDA
    
    # exécuter le .bashrc (avec conda)
    source ~/.bashrcCONDA
    et nous donner le résultat.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Bonjour jack-ft
    voilà ce que j'ai lors du retour commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    -rw-r--r-- 1 etudiant etudiant 4262 oct.   8 17:18 /home/etudiant/.bashrcCONDA
    /home/etudiant/Documents/script/InstallRasa.sh: ligne 22: conda : commande introuvable

  10. #10
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 101
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 101
    Par défaut
    Citation Envoyé par noir_desir Voir le message
    -rw-r--r-- 1 etudiant etudiant 4262 oct. 8 17:18 /home/etudiant/.bashrcCONDA
    /home/etudiant/Documents/script/InstallRasa.sh: ligne 22: conda : commande introuvable
    Manque l'encadrement du retour de la commande par la balise CODE (le dièse #) pour que ça soit lisible, genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -rw-r--r-- 1 etudiant etudiant 4262 oct.   8 17:18 /home/etudiant/.bashrcCONDA
    /home/etudiant/Documents/script/InstallRasa.sh: ligne 22: conda : commande introuvable
    et donc compréhensible.

    Il existe un bouton "Modifier le message" et environ 48 h max pour le faire.

    Et au passage, nous donner les lignes 20 à 24 du script InstallRasa.sh, merci.

  11. #11
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 342
    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 342
    Par défaut
    Citation Envoyé par noir_desir Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    cd /home/aip
    cp .bashrc .bashrc2
    wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    chmod u+x Miniconda3-latest-Linux-x86_64.sh
    ./Miniconda3-latest-Linux-x86_64.sh -uy
    cp .bashrc .bashrcCONDA
    Citation Envoyé par noir_desir Voir le message
    Bonjour jack-ft
    voilà ce que j'ai lors du retour commande :

    -rw-r--r-- 1 etudiant etudiant 4262 oct. 8 17:18 /home/etudiant/.bashrcCONDA
    /home/etudiant/Documents/script/InstallRasa.sh: ligne 22: conda : commande introuvable
    Tu expliques le pourquoi de la différence (en rouge) ?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Tu expliques le pourquoi de la différence (en rouge) ?
    Oui pas de soucis. En faites, je me suis mis sur la session admin. Lors des premiers tests, et comme il est censé fonctionner sur une session étudiant; j'ai remis sur une session type.
    cordialement

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Manque l'encadrement du retour de la commande par la balise CODE (le dièse #) pour que ça soit lisible, genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -rw-r--r-- 1 etudiant etudiant 4262 oct.   8 17:18 /home/etudiant/.bashrcCONDA
    /home/etudiant/Documents/script/InstallRasa.sh: ligne 22: conda : commande introuvable
    et donc compréhensible.

    Il existe un bouton "Modifier le message" et environ 48 h max pour le faire.

    Et au passage, nous donner les lignes 20 à 24 du script InstallRasa.sh, merci.
    Bonjour
    oups désolé, pour la balise, j'avoue que j'ai oublié au moment de poster la balise .

    Pour les scripts RASA de 15 (ajout des lignes au dessus ) à 24 voici les lignes concernées.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    # Vérifier l'existence et les droits de lecture du fichier:
    echo -e "$rouge vérification de l'existance de bashrcCONDA"
    ls -l ~/.bashrcCONDA
     
    # exécuter le .bashrc (avec conda)
    source ~/.bashrcCONDA
     
    # Vérification environnements virtuels existants
    echo -e "$cyan vérification de l'environnement conda"
    conda info -
    e

  14. #14
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 101
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 101
    Par défaut
    Bonjour,

    si ça :
    Citation Envoyé par noir_desir Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /home/etudiant/Documents/script/InstallRasa.sh: ligne 22: conda : commande introuvable
    est le résultat de l'exécution du script qui contient ça :
    Citation Envoyé par noir_desir Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    # Vérification environnements virtuels existants
    echo -e "$cyan vérification de l'environnement conda"
    conda info -e
    alors c'est simple, ton conda n'est pas installé ou pas où tu penses.

    Tente
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    updatedb
    locate -b '\conda'
    et tu verras bien (si locate est installé, bien sûr).

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Le soucis c'est quand je fais la même chose mais à la main l'un à la suite de l'autre, aucun soucis.
    Juste quand je lance en mode script, ça ne fonctionne pas, il n'arrive pas à prendre le nouveau bashrconda.
    Du coup, comme il ne le prend pas (d'ou le problème avec la commande source), et bien il ne reconnaît pas la commande source.

  16. #16
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    @noir_desir: oui, tu as fait un script, mais tu l'appelles comment ? Exécution directe ou source ?
    Il ne faut pas négliger la création de sous-processus qui sont indépendants vis-à-vis des variables. Pour qu'une définition persiste au-delà du script, il faut exporter. La différence entre l'exécution et "source", c'est que le premier fait un sous-processus, et pas le second.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ cat demonstration.bash
    #!/bin/bash
     
    toto=pouet
    $ toto=tata
    $ echo $toto
    tata
    $ ./demonstration.bash
    $ echo $toto
    tata
    $ source ./demonstration.bash
    $ echo $toto
    pouet
    Tu as vu ? Quand j'exécute, la variable toto n'est pas changée. Quand je source, elle est modifiée.

    Conclusion : si tu as réellement séparé ton procédé en 2 scripts, il faut sourcer les deux et non les exécuter, sinon, le deuxième script a oublié les définitions volatiles de variables du premier script.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    @noir_desir: oui, tu as fait un script, mais tu l'appelles comment ? Exécution directe ou source ?
    Il ne faut pas négliger la création de sous-processus qui sont indépendants vis-à-vis des variables. Pour qu'une définition persiste au-delà du script, il faut exporter. La différence entre l'exécution et "source", c'est que le premier fait un sous-processus, et pas le second.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ cat demonstration.bash
    #!/bin/bash
     
    toto=pouet
    $ toto=tata
    $ echo $toto
    tata
    $ ./demonstration.bash
    $ echo $toto
    tata
    $ source ./demonstration.bash
    $ echo $toto
    pouet
    Tu as vu ? Quand j'exécute, la variable toto n'est pas changée. Quand je source, elle est modifiée.

    Conclusion : si tu as réellement séparé ton procédé en 2 scripts, il faut sourcer les deux et non les exécuter, sinon, le deuxième script a oublié les définitions volatiles de variables du premier script.
    J'avoue que je suis un peu perdu dans tes explications. Je sais que j'ai essayé de lancer le code sous bashbug pour voir en mode pas à pas.
    Un moment je rentre la commande source, et j'arrive dans le bash et j'arrive à la section suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # If not running interactively, don't do anything
    case $- in
        *i*) ;;
          *) return;;
    esac

  18. #18
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 287
    Par défaut
    Que ne comprends-tu pas dans ma conclusion ?
    Que ne comprends-tu pas dans mon exemple de console ?

    Ne cherche pas de bug, il n'y en pas.

  19. #19
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 342
    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 342
    Par défaut
    Tu viens de répondre à ton problème: un script shell est par définition un shell non interactif...

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 160
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Que ne comprends-tu pas dans ma conclusion ?
    Que ne comprends-tu pas dans mon exemple de console ?

    Ne cherche pas de bug, il n'y en pas.
    L'histoire des processus. Car à la base il n'y avait qu'un script, il faisait l'installation de miniconda, puis enchainait sur l'installation de rasa.
    Je me suis dit justement qu'en les séparant, ca fonctionnerait mieux. Car j'activais le script sur un autre terminal.



    Citation Envoyé par disedorgue
    Que ne comprends-tu pas dans ma conclusion ?
    Que ne comprends-tu pas dans mon exemple de console ?

    Ne cherche pas de bug, il n'y en pas.
    Et donc que dois je faire pour que celui-ci contourne ce soucis. Car je dois l'installer sur 24 pc....
    Si je dois faire les instructions à la main sur nos 24 pcs...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Probléme avec la commande SendKeys
    Par ProgElecT dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 09/12/2006, 22h24
  2. Problème avec la commande sed
    Par JUSTIN Loïc dans le forum Linux
    Réponses: 2
    Dernier message: 05/09/2006, 10h17
  3. Problème avec la commande nice
    Par ShadoX dans le forum Administration système
    Réponses: 2
    Dernier message: 08/08/2006, 18h59
  4. Problème avec la commande revoke sous oracle
    Par merlubreizh dans le forum Oracle
    Réponses: 19
    Dernier message: 28/04/2006, 15h02
  5. [C++] Problème avec la commande "make"
    Par quantik-revolution dans le forum Systèmes de compilation
    Réponses: 6
    Dernier message: 02/04/2006, 18h17

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