вот мой un finnished сценарий, я думаю, что им нужно сделать, так это сделать так, чтобы он перечислял мои сценарии, и я хочу иметь возможность запускать выбранный файл .sh, который указан. Спасибо за помощь заранее. я попытался сделать make (optionone = 1), потому что, возможно, тег «1» будет распознан как имя файла .sh, перечисленного? поэтому в моей области результатов я попробовал result = $ (./$ {optionone})
Я не хочу вводить имена и имена файлов для запуска, im пытается упростить, например панель управления, где i можно просто щелкнуть по имени файла, и он запускается для меня ..
`#!/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:
мой код
PICTURE TWO:
Для меня работает следующий набор файлов, когда все они находятся в собственном каталоге. Вы можете сделать систему меню более общей.
#!/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
./test0
./test1
#!/bin/bash
echo $0 start
echo $0 end
[d5 ] test1 #!/bin/bash
echo $0 start
echo $0 end
Для меня работает следующий набор файлов, когда все они находятся в собственном каталоге. Вы можете сделать систему меню более общей.
#!/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
./test0
./test1
#!/bin/bash
echo $0 start
echo $0 end
#!/bin/bash
echo $0 start
echo $0 end
Для меня работает следующий набор файлов, когда все они находятся в собственном каталоге. Вы можете сделать систему меню более общей.
#!/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
./test0
./test1
#!/bin/bash
echo $0 start
echo $0 end
#!/bin/bash
echo $0 start
echo $0 end