O'Reilly logo

Bash. Receptury by Cameron Newham, JP Vossen, Carl Albing

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required