#!/bin/bash

Array of menu items and their corresponding commands

menu_items=("Show Date" "Show IP Address" "Show Routing Table" "Show Block Devices" "Test" "Exit")
commands=("date" "ip a" "ip r" "lsblk" "echo Test" "exit 0")

Current selected item

current=0

Function to display the menu

display_menu() {
clear
echo "=== System Information Menu ==="
for i in "${!menu_items[@]}"; do
if [ $i -eq $current ]; then
echo "> ${menu_items[$i]}"
else
echo " ${menu_items[$i]}"
fi
done
echo "=============================="
echo "Use arrow keys to navigate, Enter to select, Ctrl+C to quit"
}

Function to handle key input

read_arrow() {
read -s -n 1 key
if [[ $key == $'\x1b' ]]; then
read -s -n 2 key
case $key in
'[A') # Up arrow
((current--))
if [ $current -lt 0 ]; then
current=$((${#menu_items[@]} - 1))
fi
;;
'[B') # Down arrow
((current++))
if [ $current -ge ${#menu_items[@]} ]; then
current=0
fi
;;
esac
elif [[ $key == "" ]]; then # Enter key
execute_command
fi
}

Function to execute the selected command

execute_command() {
clear
echo "Executing: ${menu_items[$current]}"
echo "-----------------------------"
eval "${commands[$current]}"
echo "-----------------------------"
echo "Press any key to return to menu..."
read -s -n 1
}

Main loop

while true; do
display_menu
read_arrow
done

[file-name 000218_2025-09-14_10-36-27.txt]