Dialog et lancer un fichier sélectionné

Résolu
dialog -  
 dialog -
Bonjour,

J'ai besoin de faire un petit gestionnaire de fichiers tout simple avec dialog.

L'idée, on se promene dans le file system, on sélectionne son dir, puis tab, puis selectionner le fichier et ... une foie sélectionner l'exécuter.
Le problème est que la dernière fonction ne fonctionne pas avec cette syntaxe

dialog --fselect /home 14 30

En fait, je souhaiterai savoir quelle option dois-je ajouter pour executer le fichier que je sélectionne qui est un des 300 scripts sh que j'ai dans un répertoire.

Merci pour votre aide

3 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Il faut d'abord récupérer le nom de ton fichier sélectionné dans une variable et ensuite lancer ladite variable ;-\

    var=$(dialog --stdout --fselect /home 14 30)
    ./${var}


    1
  2. dialog
     
    Salut zipe,

    Merci pour ton astuce ;-)

    Comment ferais tu pour afficher dans une fenetre dialog des résultats dynamiques comme par exemple un tail -f /var/log/syslog ?
    Est-ce possible?
    Je n'ai trouvé sur le net que des dialog sur des résultats figés, mais rien en dynamique.
    Aurais tu une petite idée?
    Merci pour le coup de main
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Re-

      Alors c'est un poil tordu mais ça marche ;-))

      Il faut tout d'abord créer une variable contenant un fichier temporaire avec "mktemp" :
      file=$(mktemp)
      Ensuite rediriger la sortie de "tail -f /var/log/syslog" vers ce fichier (variable), le tout en arrière-plan (&) :
      tail -f  /var/log/syslog > ${file}&
      Puis lancer la commande dialog :
      dialog --stdout --clear --no-shadow --tailbox ${file} 25 70
      A la fin, il faut penser à arrêter l'exécution de la commande "tail".
      0
  3. dialog
     
    Re,

    J'ai essayé ceci :

    #!/bin/bash
    file=$(mktemp)
    tail -f /var/log/syslog > ${file}&
    dialog --stdout --clear --no-shadow --tailbox ${file} 25 70

    Cela fonctionne ;-)
    Par contre, je n'ai pas compris, car j'ai une boxe de sortie.
    Lorsque je la sélectionne, il semble que le tail se ferme.
    Mais je n'en suis pas très certain.
    Pourrais tu me confirmer qu'il ferme bien, car je ne souhaiterai pas saturer mon file system?
    Merci encore pour ton aide ;-)
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Par contre, je n'ai pas compris, car j'ai une boxe de sortie.
      C'est à dire ??? Qu'appelles-tu boxe ? Un bouton "Sortie" ?
      0
    2. dialog
       
      La boxe est en fait le bouton de Sortie !
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ok.

      Lorsque je la sélectionne, il semble que le tail se ferme.
      Non, en fait comme on l'a lancé en arrière plan, il tourne toujours.
      Il suffit de taper la commande
      jobs
      pour voir les processus tournant en arrière-plan.
      Pour faire remonter ton job et le fermer :
      fg
      puis
      CTRL-C

      S'il y a plusieurs jobs qui tournent, il faut rajouter à la commande "fg" le numéro du job
      correspondant (exemple pour le job numéro 1) :
      fg %1
      0
    4. dialog
       
      Merci pour toute ton aide et explications, zipe31, tu m'as fait approfondir un truc super qu'est dialog.
      Bonne continuation ;-)
      0