меню выбора не ведет себя так, как ожидается - PullRequest
0 голосов
/ 24 марта 2020

Я новичок в bash. Я хочу иметь меню выбора в bash. У него четыре варианта. Вот код:

#!/bin/bash
PS3='Please enter your choice: '
while true; do
    clear
    options=("Option 1" "Option 2" "Option 3" "Exit")
    select opt in "${options[@]}"
    do
        case $opt in
            "Option 1")
                echo "you chose choice $REPLY which is $opt"
                break
                ;;
            "Option 2")
                echo "you chose choice $REPLY which is $opt"
                break
                ;;
            "Option 3")
                echo "you chose choice $REPLY which is $opt"
                firefox http://localhost:8000/browser/
                break
                ;;
            "Exit")
                break 2
                ;;
            *) echo "invalid option $REPLY";;
        esac
    done
read -p "Press [Enter] key to continue..."
done

Вот вывод:

1) Option 1
2) Option 2
3) Option 3
4) Exit
Please enter your choice: 1
#you chose choice 1 which is Option 1
Press [Enter] key to continue...

Этот код работает отлично, кроме случаев, когда я нажимаю 3. В этом случае после печати нужного сообщения, браузер открывается с помощью этой команды:

firefox http://localhost:8000/browser/

после открытия браузера, я ожидаю, что мой код отобразит это сообщение:

Press [Enter] key to continue...

, но это не происходит, пока я не закрою браузер , Что не так?

1 Ответ

2 голосов
/ 24 марта 2020

Что не так?

Отличный код!

Если вы хотите запустить процесс firefox в фоновом режиме, просто добавьте & в конец команда.

            echo "you chose choice $REPLY which is $opt"
            firefox http://localhost:8000/browser/ &
            break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...