1 votes

Comment lancer un Shell Shell, dans un Shell Shell avec le menu dialogue ?

Voici mon script non terminé je suppose, ce que je cherche à faire est de le rendre capable de lister mes script, et je veux être capable d'exécuter le fichier .sh sélectionné qui est listé. merci d'avance pour votre aide. j'ai essayé de faire( optionone= 1 ) parce que peut-être le tag "1" sera reconnu comme le nom du fichier .sh listé ? donc dans ma zone de résultat j'ai essayé result=$(./${optionone})

Je ne veux pas avoir à taper des noms de fichiers pour l'exécuter, j'essaie de le rendre plus facile, comme un panneau de contrôle où je peux juste cliquer sur entrer sur un nom de fichier et il s'exécute pour moi .

`#!/bin/bash
let i=0 # define counting variable
W=() # define working array
while read -r line; do # process file by file
    let i=$i+1
    W+=($i "$line")
done < <( ls -1 /home/peder/Desktop/scripts )
FILE=$(dialog --title "List of scripts" --menu "Chose one" 24 80 17 "${W[@]}" 3>&2 2>&1 1>&3) # show dialog and store output
clear
optionone= 1
 case $FILE in
    0 )
      clear
      echo "Program terminated."
      ;;
    1 )
      result=$(./${optionone})
      display_result "Scripts"
      ;;
    2 )
      result=$(C^)

      ;;
  esac

  done

` PICTURE ONE :

mon code

IMAGE DEUX :

ce qu'il semble exécuté

0voto

sudodus Points 39902

Introduction

L'ensemble de fichiers suivant fonctionne pour moi, lorsqu'ils sont tous dans un répertoire propre. Vous pouvez vouloir rendre votre système de menu plus général.

menu

#!/bin/bash

# this simplified version works with files in its own directory

i=0 # define counting variable
wa=() # define working array

while read -r line; do # process file by file
    let i=$i+1
    wa+=($i "$line")
done < scripts

result=$(dialog --title "List of scripts" --menu "Choose a script from the list" 24 80 17 "${wa[@]}" \
 3>&2 2>&1 1>&3)      # show dialog menu

#clear

if [ "$result" == "" ]
then
 echo "Quit"
else
 item=$(($result*2-1))
 #  test output (to be removed later on)
 echo "$item"
 echo "${wa[$item]}"
 read -p "Press Enter to continue or ctrl C to quit"
 # end of test output
 "${wa[$item]}"       # execute selected item
fi

scripts

./test0
./test1

test0

#!/bin/bash

echo $0 start
echo $0 end

test1

#!/bin/bash

echo $0 start
echo $0 end

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X