W konsoli programy często obsługujemy poprzez notację:
{NAZWA-PROGRAMU} {JAKIŚ-ARGUMENT}
Np. jak ściągamy plik poprzez program wget argumentem jest link do tego pliku:
wget http://serwer/nazwa-pliku.tar.gz
W Linuxie możemy.. sami sobie zrobić taki program / komendę z określonym argumentem. I tak np. możemy w łatwy sposób zrobić komendę robiącą zrzut bazy MySQL do określonego pliku SQL.
W tym przypadku:
{NAZWA-PROGRAMU} to będzie nasza wymyślona nazwa np. „zrzutsql”
natomiast
{JAKIŚ-ARGUMENT} to będzie nazwa pliku .SQL – za każdym razem przez nas ustalana.
Po kolei jak to zrobimy.
Zawartość artykułu
Tworzenie i wywołanie prostej funkcji w bash
Otwieramy w edytorze tekstowym plik:
1 |
gedit ~/.bash_aliases |
Następnie na jego końcu dopisujemy funkcję:
1 2 3 4 5 |
function zrzutsql { mysqldump -uUZYTKOWNIK-BAZY -pHASLO-DO-BAZY NAZWA-BAZY-MYSQL > $1; } |
Oczywiście podstawiamy (zamiast tych napisane CAPSLOCKiem) nasze dane z powyższego kodu, czyli nasze parametry połączenia się z MySQL.
Następnie przeładowywujemy bash aby funkcja zrzutsql była dla nas dostępna:
1 |
bash |
Gotowe. Możemy teraz używać naszej funkcji, gdzie nam się podoba. Np. przejdźmy do naszego folderu domowego:
1 |
cd ~ |
i wykonajmy zrzut naszej bazy:
1 |
zrzutsql aktualny-zrzut-bazy.sql |
Funkcja z więcej jak jedym argumentem
Możemy nieco skomplikować sprawę i zamiast 1 argumentu – dać ich 2.
Posłużmy się powyższym przykładem. Niech 1 argument będzie tak jak poprzednio – nazwa pliku. Natomiast drugim nazwa bazy danych którą wybieramy do zrobienia jej zrzutu. W tym celu zmodyfukujmy tę funkcję na:
1 2 3 4 5 |
function zrzutsql { mysqldump -uUZYTKOWNIK-BAZY -pHASLO-DO-BAZY $2 > $1; } |
Tak jak poprzednio przeładujmy bash:
1 |
bash |
I możemy użyć naszej funkcji:
1 |
zrzutsql plik-ze-zrzutem.sql {NAZWA-KONKRETNEJ-BAZY} |
Czyli np.
1 |
zrzutsql plik-ze-zrzutem.sql moja_baza |