Dialog et lancer un fichier sélectionné

Résolu/Fermé
dialog - 19 sept. 2013 à 18:55
 dialog - 20 sept. 2013 à 14:38
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
A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
19 sept. 2013 à 19:08
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
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
Modifié par zipe31 le 20/09/2013 à 13:55
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
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
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
20 sept. 2013 à 14:15
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
La boxe est en fait le bouton de Sortie !
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
20 sept. 2013 à 14:34
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
Merci pour toute ton aide et explications, zipe31, tu m'as fait approfondir un truc super qu'est dialog.
Bonne continuation ;-)
0