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
done
Tento 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