Как я могу написать Bash Script для отображения меню, принятия пользовательских данных и отображения данных? - PullRequest
3 голосов
/ 09 января 2010

Я хочу написать Bash Script с пользовательским вводом для моего задания под названием «Служба книжного магазина». Во-первых, в нем есть меню опций типа «добавить новое имя книги», «имя автора», «удалить книгу», «обновить», «поиск», «показать список книг», «выйти». Если я выберу вариант 1, я должен ввести название новой книги. Как я могу записать пользовательский ввод и отобразить выходные данные, когда я выбираю опцию «показать список книг». У меня проблемы с этим заданием. Пожалуйста, кто-нибудь поможет мне прояснить это, это было бы очень полезно и благодарно всем вам.

Ответы [ 4 ]

10 голосов
/ 09 января 2010

Взгляните на оператор select. Позволяет создать меню.

PS3="Please choose an option "
select option in go stay wait quit
do
    case $option in
        go) 
            echo "Going";;
        stay|wait) 
            echo "Standing by";;
        quit)
            break;;
     esac
done

Что бы выглядеть так:

1) go
2) stay
3) wait
4) quit
Please choose an option

* * 1008 Edit: * * 1010

Один из вариантов может запрашивать ввод пользователя:

read -rp "Enter a phrase: " phrase
echo "The phrase you entered was $phrase"
3 голосов
/ 19 июля 2014

Возможно, вы захотите проверить Whiptail или Dialog , с помощью которого можно создавать графические интерфейсы внутри терминала.

Здесь и здесь - это хороший ресурс о том, как использовать хлыст.

И ответы на этот вопрос - хороший пример использования Dialog

enter image description here

1 голос
/ 09 января 2010

Вот пример кода, который показывает, как читать пользовательский ввод: http://tldp.org/LDP/abs/html/internal.html#READR

Вы также можете использовать аргументы CLI:

test.sh

echo $1

CLI:

$ ./test.sh testinput
testinput
0 голосов
/ 09 января 2010

Вы должны проверить на этой странице о том, как использовать case / esac или выбрать для создания меню

Кроме того, не забудьте начать чтение всего документа, чтобы узнать о сценариях оболочки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...