J'ai créé une fonction de menu et j'ai pu prendre une entrée et appeler la fonction quand elle est entrée. Je me demandais comment je devrais faire revenir le menu après avoir fini une fonction.Bash Script Menu Loop
J'ai ici un exemple de ce que je cherche. J'ai un menu et les fonctions de celui-ci. Je voudrais juste être en mesure de revenir au menu après avoir utilisé l'une des fonctions. Ce peut être une solution simple, mais j'ai regardé beaucoup d'endroits et ne peux pas trouver ce que je cherche.
#!/bin/sh
function Main_Menu
clear
echo "Select an option ..."
printf "\n"
echo "1 - Check Free Disk Space"
echo "2 - List Directories"
echo "3 - Show Running Processes"
echo "4 - TCP Connections"
echo "5 - Network Interfaces"
echo "6 - Show PATH"
echo "7 - Show Computer Hostname"
echo "8 - Routing Table"
echo "9 - Computer Uptime"
echo "10 - Available Block Devices"
echo "11 - Mount Device"
echo -n "Input desired function number and press ENTER: "
read user_input
if [ "$user_input" = "1" ]
then
Check_Disk
elif [ "$user_input" = "2" ]
then
List_Dir
elif [ "$user_input" = "3" ]
then
Show_Run
elif [ "$user_input" = "4" ]
then
TCP_Con
elif [ "$user_input" = "5" ]
then
Net_Int
elif [ "$user_input" = "6" ]
then
Show_Path
elif [ "$user_input" = "7" ]
then
Host_Name
elif [ "$user_input" = "8" ]
then
Route_Table
elif [ "$user_input" = "9" ]
then
Up_time
elif [ "$user_input" = "10" ]
then
Block_Dev
elif [ "$user_input" = "11" ]
then
Mount_Dev
else
Main_Menu
fi
function Check_Disk
clear
freedisk=$(df -h )
echo "$freedisk"
then
Main_Menu
else
CheckDisk
fi
'while true; faire ...; done' – Barmar
Aussi, si votre shell est 'bash', comme indiqué dans le titre (mais pas le shebang), vous pouvez utiliser' select' pour simplifier le code. – choroba
Vous ne disposez pas de la syntaxe de fonction appropriée qui vous a été fournie [dans votre question précédente] (https://stackoverflow.com/q/46453114/7552) –