6.16. Utworzenie prostego menu

Problem

Chcemy uruchomić krótki skrypt SQL w odniesieniu do kilku baz danych. Zadanie skryptu SQL polega na przygotowaniu baz danych do wykonania określonych testów. Nazwę każdej bazy danych można by oczywiście wpisywać w wierszu poleceń, ale chcemy wykorzystać bardziej interaktywne rozwiązanie. W jaki sposób można napisać skrypt powłoki, który pozwoliłby na wybranie jednej nazwy z listy?

Rozwiązanie

Aby utworzyć proste tekstowe menu, wystarczy zastosować polecenie select. Oto przykład:

#!/usr/bin/env bash
# plik receptury: dbinit.1
#
DBLIST=$(tail –n +2 ./listadb)
select DB in $DBLIST
do
    echo Inicjowanie bazy danych: $DB
    mysql -uuser -p $DB <inicjowanie.sql
done

Pomińmy na razie problem przypisania wartości zmiennej ...

Get Bash. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.