Оператор Bash Select: примеры интерактивного меню и фрагменты кода

В сценариях Bash оператор selectиспользуется для создания интерактивных меню и предложений пользователю сделать выбор. Это позволяет вам представить список опций и зафиксировать выбор пользователя. Вот несколько примеров использования оператора selectв Bash, а также некоторые фрагменты кода:

Метод 1: базовый оператор select

#!/bin/bash
options=("Option 1" "Option 2" "Option 3")
select choice in "${options[@]}"; do
    case $choice in
        "Option 1")
            echo "You chose Option 1"
            break
            ;;
        "Option 2")
            echo "You chose Option 2"
            break
            ;;
        "Option 3")
            echo "You chose Option 3"
            break
            ;;
        *)
            echo "Invalid option"
            ;;
    esac
done

Метод 2: динамическое создание вариантов

#!/bin/bash
options=()
files=$(ls)
for file in $files; do
    options+=("$file")
done
select choice in "${options[@]}"; do
    echo "You chose $choice"
    break
done

Метод 3. Использование цифр вместо вариантов

#!/bin/bash
options=("Option 1" "Option 2" "Option 3")
select choice in "${!options[@]}"; do
    case $choice in
        0)
            echo "You chose Option 1"
            break
            ;;
        1)
            echo "You chose Option 2"
            break
            ;;
        2)
            echo "You chose Option 3"
            break
            ;;
        *)
            echo "Invalid option"
            ;;
    esac
done

Метод 4. Предоставление параметра по умолчанию

#!/bin/bash
options=("Option 1" "Option 2" "Option 3")
select choice in "${options[@]}"; do
    case $choice in
        "Option 1")
            echo "You chose Option 1"
            break
            ;;
        "Option 2")
            echo "You chose Option 2"
            break
            ;;
        "Option 3")
            echo "You chose Option 3"
            break
            ;;
        *)
            echo "Invalid option"
            ;;
    esac
done

if [ -z "$choice" ]; then
    echo "You did not select anything. Option 1 selected by default."
    choice="Option 1"
fi

Это всего лишь несколько примеров использования оператора selectв Bash. Вы можете настроить код в соответствии с вашими конкретными потребностями. Не забудьте добавить обработку ошибок и проверку в соответствии с вашими требованиями.