Introdução
O seguinte conjunto de arquivos funciona para mim, quando todos eles estão em um diretório próprio. Você pode querer tornar seu sistema de menu mais geral.
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