Back to root_menu in script doesn't respond like it should
0
votes
1
answer
72
views
Menu and its submenus in single file bash script with a back to root menu for each.
---
My issue is that the
---
---
My ohter related questions resolved so far:
- https://unix.stackexchange.com/questions/733152/whats-the-difference-between-sh-command-and-run-as-executable/
- https://unix.stackexchange.com/questions/733425/creating-debug-of-a-bash-script-menu
`$ shellcheck myscript
No issues detected!`
The actual script is:
show_root_menu
call sometimes just jump to the upper menu instead of the root.
Bash-installer-menu .
It goes most often wrong with the nvidia submenu, to get back to the root menu.
Instead it goes to the "Package options" show_pckg_menu
, when "show root menu" is selected from the "Install graphic proprietary driver" submenu:



#!/bin/bash
show_root_menu(){
width=72
height=50
menu_height=8
backtitle="Installer-menu"
title="Setup opions"
menu="Choose one of the following options:"
options=(1 'Add Mint PPA and update'
2 'Install Cinnamon '
3 'update and upgrade '
4 'Additional software installation '
5 'Upgrade Kernel '
6 'Resolve Ubuntu Cinnamon issues '
7 'Install graphic proprietary driver'
x reboot
q quit )
result=$(dialog --clear \
--backtitle "$backtitle" \
--title "$title" \
--menu "$menu" \
$height $width $menu_height \
"${options[@]}" \
2>&1 >/dev/tty)
}
show_pckg_menu(){
width=72
height=22
menu_height=8
backtitle='Installer-menu'
title='Package options'
menu='Choose one of the following options:'
options=(1 'Install package list'
2 'Export package list'
3 'update and upgrade'
4 'Show root menu'
x reboot
q quit )
result=$(dialog --clear \
--backtitle "$backtitle" \
--title "$title" \
--menu "$menu" \
$height $width $menu_height \
"${options[@]}" \
2>&1 >/dev/tty)
}
show_solver_menu(){
width=72
height=22
menu_height=8
backtitle='Installer-menu'
title='Resolver menu'
menu='Choose one of the following options:'
options=(1 'Network applet problem'
2 'Sound problem'
3 'update and upgrade'
4 'Show root menu'
x reboot
q quit )
result=$(dialog --clear \
--backtitle "$backtitle" \
--title "$title" \
--menu "$menu" \
$height $width $menu_height \
"${options[@]}" \
2>&1 >/dev/tty)
}
show_nvidia_menu(){
width=72
height=22
menu_height=8
backtitle='Installer-menu'
title='NVidia driver selection'
menu='Choose one of the following options:'
options=(1 'Install nvidia 515'
2 'Install nvidia 525'
3 'Update and upgrade'
4 'Show root menu'
x reboot
q quit )
result=$(dialog --clear \
--backtitle "$backtitle" \
--title "$title" \
--menu "$menu" \
$height $width $menu_height \
"${options[@]}" \
2>&1 >/dev/tty)
}
show_root_menu
case "$result" in
1) echo 'Mint backport repos installed';
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com A1715D88E1DF1F24 40976EAF437D05B5 3B4FE6ACC0B21F32 A6616109451BBBF2;
sh -c 'echo "deb http://packages.linuxmint.com vanessa main upstream import backport romeo" >> /etc/apt/sources.list.d/mint.list';
sh -c 'echo "deb-src http://packages.linuxmint.com vanessa main upstream import backport romeo" >> /etc/apt/sources.list.d/mint.list';
apt-key export 451BBBF2 | gpg --dearmour -o /etc/apt/trusted.gpg.d/mint.gpg;
apt update;
show_root_menu;;
2) echo 'Installation of Cinnamon';
apt install slick-greeter muffin cinnamon;
show_root_menu;;
3) echo 'Package upgrade';
apt update && apt upgrade -y;
show_root_menu;;
4) show_pckg_menu;;
5) sh ubuntu-mainline-kernel.sh;
show_root_menu;;
6) show_solver_menu;;
7) show_nvidia_menu;;
x) echo Reboot;
reboot;;
q) clear;
exit ;;
esac
show_pckg_menu
case "$result" in
1) echo 'Package Install';
sh installpkgs.sh;;
2) echo 'Manualy installed packages exported';
sh pkgsexport.sh;;
3) echo 'Package upgrade';
apt update && apt upgrade -y;
show_pckg_menu;;
4) show_root_menu;;
x) echo 'Reboot';
reboot;;
q) clear;
exit ;;
esac
show_solver_menu
case "$result" in
1) echo 'Applying changes to network settings';
clear;
option_picked "Option 1 Picked";
touch /etc/network/interfaces;
sh -c 'echo "auto lo" >> /etc/network/interfaces';
sh -c 'echo "iface lo inet loopback" >> /etc/network/interfaces';
sh -c 'echo " renderer: NetworkManager" >> /etc/netplan/*.yaml';
netplan apply;
show_solver_menu;;
2) echo 'Applying changes to sound settings';
ln -s /usr/share/pipewire /etc/pipewire;
touch /usr/share/pipewire/media-session.d/with-pulseaudio;
systemctl --user restart pipewire-session-manager;
systemctl --user start pulseaudio;
show_solver_menu;;
3) echo 'Package upgrade';
apt update && apt upgrade -y;
show_solver_menu;;
4) show_root_menu;;
x) echo 'Reboot';
reboot;;
q) clear;
exit ;;
esac
show_nvidia_menu
case "$result" in
1) echo 'NVidia driver 515 installation';
apt install nvidia-driver-515 -y;
show_nvidia_menu;;
2) echo 'NVidia driver 525 installation';
apt install nvidia-driver-525 -y;
show_nvidia_menu;;
3) echo 'Package upgrade';
apt update && apt upgrade -y;
show_nvidia_menu;;
4) show_root_menu;;
x) echo 'Reboot';
reboot;;
q) clear; exit ;;
esac
Asked by user330163
Jan 30, 2023, 03:53 PM
Last activity: Jan 30, 2023, 04:57 PM
Last activity: Jan 30, 2023, 04:57 PM