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 :

Lancer un exécutable via fichier bash


Sujet :

Shell et commandes GNU

  1. #21
    Membre du Club
    Homme Profil pro
    techno
    Inscrit en
    Octobre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : techno
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    Lorsque j'écris la ligne dans le terminal, ça fonctionne!

    lorsque j'écris la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gnome-terminal ~/SAVA/code/user/sava &
    dans le terminal ,
    j'ai une erreur: [1] 2605
    et un nouveau terminal s'ouvre

  2. #22
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 726
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    On n'y comprend rien ! Un coup il y a l'esperluette un coup il y a le read, un coup il y a les simples quotes un coup non, bref on va faire court sinon on y passe la journée :
    le $ c'est mon prompt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ cat /tmp/test.sh 
    #!/bin/bash
    ls
    lors de l'exécution :
    • apparaît la liste_de_fichiers
    • puis, le terminal attend un appui sur ENTRÉE (commande read)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ cat bidon.sh 
    #!/bin/bash
    xterm -e '/tmp/test.sh; read'
    lors de l'exécution dans un autre terminal :
    • apparaît la liste_de_fichiers
    • puis, le terminal attend un appui sur ENTRÉE (commande read)



    Voilà. Et tout fonctionne bien.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  3. #23
    Membre du Club
    Homme Profil pro
    techno
    Inscrit en
    Octobre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : techno
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    Jipété,
    je crois que tu lis trop vite et tu passe à coté de certaines choses.
    jack-ft, m'a demandé de tester des codes, alors je l'ai fait et lui ai posté le résultat.

    Si tu regarde bien mon code entier, tu peux constater qu'il est simple.

    je te remercie pour ton code maintenant, mais je ne le comprends pas ...
    car je n'arrive pas a identifier mon fichierA et mon fichierB dedans, ni ou chacun s'arrête (je débute)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 378
    Points
    19 378
    Par défaut
    j'ai édité le dernier message de Jipété, pour mettre en évidence les différents scripts, et leur déroulement.

    mais comme je te l'ai déjà dit, pour un lanceur, un autre script n'est pas utile.
    il faut créer un fichier lanceur, qui a un certain format, et qui incorporera la commande que tu veux exécuter (c'est-à-dire, lancer un terminal en exécutant (donc -x, ou -e) le script dont tu veux afficher le résultat).
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #25
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    Pour la défense de Jipété, le sujet est franchement pas clair...

    dans ton fichier vasy.sh, remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    gnome-terminal ./monfichier
    read
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xterm -e './monfichier; read'
    et si besoin installe xterm.

    Ca permettra de voir si ça fonctionne bien.
    Sous Kubuntu 20.04

  6. #26
    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
    Je n'ai pas de gnome-terminal sous la main (ni de machine linux, d'ailleurs), donc je ne peux pas tester.

    Voici néanmoins quelques pistes:
    • essayer en enlevant l'espace avant le '~': gnome-terminal -e '~/SAVA/code/user/sava; read';
    • essayer en remplaçant le '~' par sa valeur:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      sava_script=$(echo ~/SAVA/code/user/sava)
      gnome-terminal -e "${sava_script}"
      # ou bien, si on suit l'idée de N_BaH
      gnome-terminal -e "${sava_script}; read"
    • essayer avec l'option --working-directory:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      sava_script=$(echo ~/SAVA/code/user/sava)
      gnome-terminal --working-directory=~/SAVA/code/user -e "./sava"
      # ou bien, si on suit l'idée de N_BaH
      gnome-terminal --working-directory=~/SAVA/code/user -e "./sava; read"


    Remarque: si tu veux voir le message de echo APRES, il faut peut-être le lancer en background avec la perluette (gnome-terminal ... &).

    [EDIT]: Oops... je n'avais pas vu qu'il y avait une 2ème page de réponse... Cela dit la réponse aux questions que je pose peut permettre de comprendre à quel endroit ça coince...

  7. #27
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sava_script=$(echo ~/SAVA/code/user/sava)
    moi je ferais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sava_script="${HOME}/SAVA/code/user/sava"
    Sous Kubuntu 20.04

  8. #28
    Membre du Club
    Homme Profil pro
    techno
    Inscrit en
    Octobre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : techno
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    ok je teste...merci

  9. #29
    Membre du Club
    Homme Profil pro
    techno
    Inscrit en
    Octobre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : techno
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    Bilan de tous les essais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sava_script=$(echo ~/SAVA/code/user/sava)
    gnome-terminal --working-directory=~/SAVA/code/user -e "./sava"
    # ou bien, si on suit l'idée de N_BaH
    gnome-terminal --working-directory=~/SAVA/code/user -e "./sava; read"
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sava_script="${HOME}/SAVA/code/user/sava"
    même message d'erreur :
    "l'exécution du processus fils << ./sava; >> a échoué (aucun dossier ou fichier de ce type)
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sava_script=$(echo ~/SAVA/code/user/sava)
    gnome-terminal -e "${sava_script}; read"
    message d'erreur:
    "l'exécution du processus fils << home/mod77/SAVA/code/user/sava; >> a échoué (aucun dossier ou fichier de ce type)

    par contre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sava_script=$(echo ~/SAVA/code/user/sava)
    gnome-terminal -e "${sava_script}"
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xterm -e './fichierA; read'
    fonctionnent !! :-)

    Franchement j'ai galéré pour si peu et je ne comprends même pas pourquoi :-(
    mon fichierA se résume en ces lignes, maintenant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #!/bin/bash
    # programme de lancement des "lectures de codes"
    cd ~/SAVA/code/user
    xterm -e './fichierA; read'
    et j'aimerais cliquer sur l'icône du fichierA (placé sur le bureau) pour qu'il ouvre le terminal et s'exécute sans en ouvrir un 2e.
    J'ai déjà coché l'autorisation d'exécution comme un programme.
    mais lorsque je clic sur fichierA il ouvre "gedit".
    J'avais essayé avec mais sans succès
    Que dois-je changer svp?

  10. #30
    Membre du Club
    Homme Profil pro
    techno
    Inscrit en
    Octobre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : techno
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    Erreur! j'ai modifié mon fichierA,
    Seule la question du lancement par le clic reste posée

  11. #31
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Points : 460
    Points
    460
    Par défaut
    le cd est important dans ton fichierA ?
    car si on peut exécuter directement le fichier sans le cd, il suffit de créer un lanceur (d’ailleurs même avec le cd ça doit fonctionner...).

    exemple : https://doc.ubuntu-fr.org/raccourci-...eer_un_lanceur

    EDIT : j'arrive pas à executer un cd avant la commande via un lanceur, il faut donc lancer le fichier directement sans le cd.

    Etrange que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sava_script=$(echo ~/SAVA/code/user/sava)
    gnome-terminal -e "${sava_script}"
    fonctionne et pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sava_script="${HOME}/SAVA/code/user/sava"
    gnome-terminal -e "${sava_script}"
    Sous Kubuntu 20.04

  12. #32
    Membre du Club
    Homme Profil pro
    techno
    Inscrit en
    Octobre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : techno
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    Le CD est important oui.
    Car fichierA est sur le "Bureau" alors que le fichierB (sava) est dans "~/SAVA/code/user"

  13. #33
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sava_script="~/SAVA/code/user/sava"
    gnome-terminal -x /bin/bash -c "${sava_script};read"

  14. #34
    Membre du Club
    Homme Profil pro
    techno
    Inscrit en
    Octobre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : techno
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    BufferBob,

    il y a un message : "erreur: impossible d'ouvrir le fichier en lecture"

  15. #35
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    chez moi ça fonctionne, t'es sûr que le chemin est bon et que sava est bien un fichier exécutable ? (chmod +x comme mentionné plus haut)

  16. #36
    Membre du Club
    Homme Profil pro
    techno
    Inscrit en
    Octobre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : techno
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par hizoka Voir le message
    le cd est important dans ton fichierA ?
    car si on peut exécuter directement le fichier sans le cd, il suffit de créer un lanceur (d’ailleurs même avec le cd ça doit fonctionner...).

    exemple : https://doc.ubuntu-fr.org/raccourci-...eer_un_lanceur

    EDIT : j'arrive pas à executer un cd avant la commande via un lanceur, il faut donc lancer le fichier directement sans le cd.

    Etrange que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sava_script=$(echo ~/SAVA/code/user/sava)
    gnome-terminal -e "${sava_script}"
    fonctionne et pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sava_script="${HOME}/SAVA/code/user/sava"
    gnome-terminal -e "${sava_script}"
    ce n'est pas ce qu'il y a au poste 26!
    par contre celui que tu marque là me sort un fichier vide
    mais je n'ai pas ce que j'attends

  17. #37
    Membre du Club
    Homme Profil pro
    techno
    Inscrit en
    Octobre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : techno
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    BufferBob,

    j'ai cliqué droit sur sava la case est bien cochée.
    de plus lorsqu'on tape dans le terminal: ./sava il s'exécute...

    Après je ne sais pas si cela prouve qu'il est exécutable...
    Note, cependant, que ce n'est pas moi qui l'ai créé.

  18. #38
    Membre du Club
    Homme Profil pro
    techno
    Inscrit en
    Octobre 2012
    Messages
    121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : techno
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2012
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    Je pense que la solution est dans le "bashrc" et le code "chmod +x" mais je n'arrive pas à le mettre en place pour la raison évoqué au poste 32...

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 378
    Points
    19 378
    Par défaut
    j'ai cliqué droit
    eh, pas de gros mots, hein !
    c'est un forum shell et commandes, ici.

    Je pense que la solution est dans le "bashrc"
    mais, pourquoi ?
    ~/.bashrc intervient à un autre niveau, pas dans l'exécution des scripts.

    si tu n'es pas à l'aise avec le terminal, et les commandes, il faut lire la doc.
    voir les liens dans ma signature.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  20. #40
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 726
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Citation Envoyé par Mod77 Voir le message
    lorsqu'on tape dans le terminal: ./sava il s'exécute...

    Après je ne sais pas si cela prouve qu'il est exécutable...
    On est mal, là, on est très mal...

    Je crois qu'avant de vouloir courir, tu devrais apprendre à marcher, avec un bon bouquin genre "Linux for beginners" àmha.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

Discussions similaires

  1. Lancer un exécutable via PHP sous linux
    Par MSM_007 dans le forum Langage
    Réponses: 2
    Dernier message: 22/06/2009, 07h45
  2. commande DOS impossible à lancer via fichier BATCH
    Par siekken dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 11/03/2009, 13h24
  3. Lancer un fichier bash par une page web ?
    Par ricco75 dans le forum Linux
    Réponses: 6
    Dernier message: 23/06/2008, 16h34
  4. lancer un vbs via un fichier bat sous windows98
    Par olaxius dans le forum VBScript
    Réponses: 5
    Dernier message: 07/12/2006, 11h54

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