Lier des commandes à Menubox de whiptail (bash)

Fermé
Lume_56 Messages postés 42 Date d'inscription lundi 1 juin 2020 Statut Membre Dernière intervention 12 novembre 2024 - 1 nov. 2022 à 15:27
Lume_56 Messages postés 42 Date d'inscription lundi 1 juin 2020 Statut Membre Dernière intervention 12 novembre 2024 - 1 nov. 2022 à 16:23

Bonjour,

J'ai créé un menu avec Menubox de whiptail pour faciliter la recherche de mots, de programmes et autres car je n'ai pas toujours envie de retaper les mêmes commandes. Les exemples de scripts sont nombreux. Par contre, aucun ne précise où écrire les commandes (ou les scripts) qui seront exécutés. Je pense que la réponse est très banale mais je ne suis pas un expert !

Je joins un script très sommaire

  1. Où doit-on entrer des commandes : ( ce n'est que pour illustrer la demande)
    1. pwd
    2. date
  2. Comment fait-on lorsqu’on utilise un script ( par exemple, pour recherche un mot) ? Le script "Rechercher un mot" est joint dans le message.

Menu créé avec MenuBox de whiptail.

#!/bin/bash 
# Exemple de menu avec MenuBox de whiptail

function advancedMenu() {
    ADVSEL=$(whiptail --title "Menu" --menu "Choisissez une option" 15 60 4 \
        "1" "A" \
        "2" "B" 3>&1 1>&2 2>&3)
    case $ADVSEL in
        1)
            echo "A"
            whiptail --title "A " --msgbox "Le choix est A. Exit status $?" 8 45
        ;;
        2)
            echo "B"
            whiptail --title "B" --msgbox "Le choix est B. Exit status $?" 8 45
        ;;
       
    esac
}
advancedMenu

Script avec utilisation de whiptail  (inputbox) pour la recherche de mot

#!/bin/bash
# Recherche de mot et export vers un fichier .txt avec input de whiptail

Name=$(whiptail --title "Input" --inputbox "Mot recherché" 10 60  3>&1 1>&2 2>&3)
exitstatus=$?
if [ $exitstatus = 0 ]; then
    echo "Le mot recherché est :" $Name
    
#echo "Recherche des occurences"
 grep -i -r "$Name" ./  > $Name.txt
	echo " 
 "
 echo "Affichage des résultats"
 sleep 1
 pluma  $Name.txt
 
 echo " 
 "
 echo "Suppression de $Name.txt" 
 rm $Name.txt 
else
    echo "Tu as annulé... :-("
fi

Merci à vous.


Linux / Firefox 105.0

A voir également:

1 réponse

Lume_56 Messages postés 42 Date d'inscription lundi 1 juin 2020 Statut Membre Dernière intervention 12 novembre 2024 1
1 nov. 2022 à 16:23

En fait, c'est tout simple. Il suffit d'entrer le code ou la commande comme ceci :

Pour l'option 1)

 .........

case $ADVSEL in
        1)
           Name=$(whiptail --title "Input" --inputbox "Mot recherché" 10 60  3>&1 1>&2 2>&3)
			exitstatus=$?
			if [ $exitstatus = 0 ]; then
				echo "Le mot recherché est :" $Name
				
			#echo "Recherche des occurences"
			 grep -i -r "$Name" ./  > $Name.txt
				echo " 
			 "
			 echo "Affichage des résultats"
			 sleep 1
			 nano  $Name.txt
            fi
            ;;  
0