¿Cómo ejecuto un script de shell, en un script de shell con el cuadro de diálogo del menú?

¿Cómo ejecuto un script de shell, en un script de shell con el cuadro de diálogo del menú?

Supongo que aquí está mi script sin terminar, lo que pretendo hacer es que enumere mis scripts y quiero poder ejecutar el archivo .sh seleccionado que aparece en la lista. Gracias por la ayuda por adelantado. Intenté tal vez hacer (opción uno = 1) porque tal vez la etiqueta "1" se reconozca como el nombre del archivo .sh enumerado. entonces en mi área de resultados probé result=$(./${optionone})

No quiero escribir nombres de archivos para ejecutarlo, estoy tratando de hacerlo fácil, como un panel de control donde puedo hacer clic en Intro en un nombre de archivo y se ejecuta automáticamente.

`#!/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

` IMAGEN UNO:

mi código

IMAGEN DOS:

lo que parece ejecutado

Respuesta1

Introducción

El siguiente conjunto de archivos me funciona, cuando todos están en un directorio propio. Es posible que desee hacer que su sistema de menús sea más general.

menú

#!/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

guiones

./test0
./test1

prueba0

#!/bin/bash

echo $0 start
echo $0 end

prueba1

#!/bin/bash

echo $0 start
echo $0 end

información relacionada