Předpokládejme, že v adresáři "~/menu" jsou uložené scripty. Následující script vygeneruje interaktivní menu:
#!/bin/bash
# Adresář obsahující skripty menu
menu_dir=~/menu
# Načtení seznamu scriptů v adresáři
scripts=($menu_dir/*)
# Funkce pro zobrazení menu
function show_menu() {
clear
echo "=== MENU ==="
for ((i=0; i<${#scripts[@]}; i++)); do
script="${scripts[$i]}"
script_name=$(basename "$script")
echo "$i. $script_name"
done
echo "q. Konec"
echo "============"
}
# Spuštění vybraného scriptu
function run_script() {
index=$1
if ((index >= 0 && index < ${#scripts[@]})); then
script="${scripts[$index]}"
chmod +x "$script"
clear
"$script"
read -p "Stiskněte Enter pro návrat do menu."
fi
}
# Hlavní smyčka menu
while true; do
show_menu
read -p "Zvolte položku menu: " choice
case $choice in
q) break ;;
[0-9]*)
run_script "$choice"
;;
*) echo "Neplatná volba. Zkuste to znovu." ;;
esac
doneTento skript zobrazuje seznam scriptů uložených v adresáři ~/menu a umožňuje uživateli vybrat script, který chce spustit. Každý script v adresáři ~/menu musí mít oprávnění ke spuštění (chmod +x). Po spuštění vybraného scriptu se uživatel vrátí zpět do menu.
Přizpůsobte proměnnou menu_dir podle svého adresáře, kde jsou uloženy vaše scripty menu. Ujistěte se, že scripty mají správná oprávnění ke spuštění.
Tento skript vytváří menu pomocí pole options, kde jsou uloženy názvy položek. Každá položka je spojena s odpovídajícím příkazem ve funkci process_choice(). Uživatel může vybrat číslo odpovídající položce menu a spustit tak příslušný příkaz.
Přizpůsobte pole options a funkci process_choice() podle svých potřeb, abyste přidali nebo upravili položky menu a příkazy.
Toto je jen jedno z možných řešení. Existuje spousta různých způsobů, jak implementovat menu v bash skriptu, takže si můžete vybrat ten, který nejlépe vyhovuje vašim potřebám.
#!/bin/bash
# Pole s názvy položek menu
options=("První položka" "Druhá položka" "Třetí položka" "Konec")
# Funkce pro zobrazení menu
function show_menu() {
clear
echo "=== MENU ==="
for ((i=0; i<${#options[@]}; i++)); do
echo "$i. ${options[$i]}"
done
echo "============"
}
# Funkce pro zpracování volby uživatele
function process_choice() {
choice=$1
case $choice in
0) echo "Spustit první skript" ;; # Zde můžete vložit příkaz pro první položku menu
1) echo "Spustit druhý skript" ;; # Zde můžete vložit příkaz pro druhou položku menu
2) echo "Spustit třetí skript" ;; # Zde můžete vložit příkaz pro třetí položku menu
3) exit ;; # Konec skriptu
*) echo "Neplatná volba. Zkuste to znovu." ;;
esac
}
# Hlavní smyčka menu
while true; do
show_menu
read -p "Zvolte položku menu: " choice
process_choice "$choice"
read -p "Stiskněte Enter pro pokračování."
done
Zde je další příklad využívající funkce a volání těchto funkcí:
#!/bin/bash
# Funkce pro zobrazení menu
function show_menu() {
clear
echo "=== MENU ==="
echo "1. První položka"
echo "2. Druhá položka"
echo "3. Třetí položka"
echo "4. Konec"
echo "============"
}
# Funkce pro zpracování volby uživatele
function process_choice() {
choice=$1
case $choice in
1) echo "Spustit první skript" ;; # Zde můžete vložit příkaz pro první položku menu
2) echo "Spustit druhý skript" ;; # Zde můžete vložit příkaz pro druhou položku menu
3) echo "Spustit třetí skript" ;; # Zde můžete vložit příkaz pro třetí položku menu
4) exit ;; # Konec skriptu
*) echo "Neplatná volba. Zkuste to znovu." ;;
esac
}
# Hlavní funkce menu
function main_menu() {
while true; do
show_menu
read -p "Zvolte položku menu: " choice
process_choice "$choice"
read -p "Stiskněte Enter pro pokračování."
done
}
# Spuštění hlavního menu
main_menu