Wprowadzenie do skryptów bash: składnia, zmienne, komendy
1. Czym są skrypty bash?
Jeśli kiedykolwiek pomyślałeś: "Dlaczego muszę powtarzać te same komendy w kółko?", to gratulacje, jesteś gotowy na skrypty bash! Skrypty bash to sposób na zautomatyzowanie pracy w Linuxie przez napisanie sekwencji komend w jednym pliku. Bash (Bourne Again Shell) to nie tylko powłoka, to szwajcarski scyzoryk dla adminów, programistów i wszystkich, którzy chcą zmusić system, by pracował dla nich.
Zalety skryptów bash
- Oszczędność czasu: Raz napisane – osiem razy uruchomione.
- Powtarzalność zadań: Skrypty działają tak samo przy każdym uruchomieniu (no, jeśli wszystko dobrze napiszesz).
- Automatyzacja rutyny: Twórz dostosowane komendy do backupów, monitorowania zasobów czy zarządzania plikami.
2. Podstawy tworzenia skryptów
No to zaczynamy. Skrypt Bash to po prostu plik tekstowy z zestawem komend. Ale żeby Linux zrozumiał, że to skrypt, a nie jakieś przypadkowe zapiski z dziennika, trzeba przestrzegać pewnych zasad.
Krok 1: Nazwa i format pliku
Skrypty Bash zwykle mają rozszerzenie .sh
(ale nie jest to obowiązkowe). Na przykład:
hello_world.sh
backup_script.sh
Krok 2: Obowiązkowy shebang
Każdy skrypt bash zaczyna się od linii:
#!/bin/bash
Ta linia nazywana jest shebang i mówi systemowi, że do wykonania skryptu powinien użyć interpretera /bin/bash
. Bez niej system po prostu spojrzy na twój skrypt, westchnie smutno i nic nie zrobi.
Krok 3: Najprostszy skrypt
Stwórzmy i odpalmy skrypt, który wyświetli tekst "Cześć, świecie!". W końcu, dlaczego nie?
Tworzymy plik:
nano hello_world.sh
Dodajemy linie:
#!/bin/bash echo "Cześć, świecie!"
Ustawiamy plik jako wykonywalny:
chmod +x hello_world.sh
Uruchamiamy skrypt:
./hello_world.sh
Na ekranie zobaczysz:
Cześć, świecie!
3. Praca ze zmiennymi
Zmienne to miejsca przechowywania danych w twoim skrypcie. Dzięki nim skrypty są elastyczne i wygodne.
Tworzenie zmiennych
Aby zadeklarować zmienną, użyj formatu:
NAZWA_ZMIENNEJ="wartość"
Przykład:
NAME="Linux"
echo "Witaj w $NAME!"
Wynik:
Witaj w Linux!
Uwaga: między nazwą zmiennej a znakiem =
nie można stawiać spacji. Jeśli to zrobisz, bash pomyśli, że próbujesz napisać coś dziwnego, i wyświetli błąd.
Wbudowane zmienne
Bash oferuje kilka predefiniowanych zmiennych, na przykład:
$USER
— obecny użytkownik.$HOME
— katalog domowy.$PWD
— bieżący katalog roboczy.
Spróbuj taki skrypt:
#!/bin/bash
echo "Cześć, $USER!"
echo "Twój katalog domowy: $HOME"
echo "Jesteś teraz tutaj: $PWD"
4. Pobieranie danych od użytkownika
Czasami skrypt musi pobrać dane od użytkownika, aby działać. Do tego używamy polecenia read
.
Przykład:
#!/bin/bash
echo "Jak masz na imię?"
read NAME
echo "Cześć, $NAME!"
Uruchamiając skrypt, będziesz mógł wpisać swoje imię, a skrypt przywita Cię osobiście.
5. Wykorzystanie komend w skrypcie
Bash pozwala na wykonywanie komend tak samo, jakbyś wpisywał je w terminalu.
Na przykład:
#!/bin/bash
echo "Aktualna data i godzina:"
date
Komenda date
wyświetli aktualny czas i datę, na przykład:
Aktualna data i godzina:
Mon Oct 30 12:34:56 UTC 2023
Zapisywanie wyniku komendy w zmiennej
Możesz zapisać wynik komendy w zmiennej za pomocą $()
. Jest to wygodne do dalszego przetwarzania danych.
Przykład:
#!/bin/bash
CURRENT_DATE=$(date)
echo "Teraz: $CURRENT_DATE"
6. Komentarze w skryptach
Zawsze dodawaj komentarze, żeby za miesiąc zrozumieć, co w ogóle pisałeś. Używaj symbolu #
do komentarzy:
#!/bin/bash
# To jest skrypt powitalny
echo "Witaj w świecie Bash!"
Komentarze są ignorowane przez interpreter i nie wpływają na wykonywanie.
7. Przykład
Teraz napiszemy script, który sprawdza, czy plik istnieje.
Tworzymy plik:
nano file_checker.sh
Dodajemy kod:
#!/bin/bash # Zapytaj nazwę pliku echo "Wprowadź nazwę pliku:" read FILE_NAME # Sprawdź, czy plik istnieje if [ -f "$FILE_NAME" ]; then echo "Plik $FILE_NAME istnieje." else echo "Plik $FILE_NAME nie znaleziony." fi
Ustawiamy plik jako wykonywalny i uruchamiamy:
chmod +x file_checker.sh ./file_checker.sh
Przykład działania scriptu:
Wprowadź nazwę pliku: test.txt Plik test.txt istnieje.
8. Typowe błędy
Praca ze skryptami bash przynosi nie tylko radość, ale czasem również poważne bóle głowy. Oto kilka typowych błędów:
Brak shebang.
Bez linii#!/bin/bash
twój skrypt może próbować zostać wykonany w innym interpreterze, co prowadzi do błędów.Niezadeklarowane zmienne.
Jeśli przez przypadek zrobiłeś literówkę w nazwie zmiennej, bash potraktuje ją jako pustą. Włącz tryb ścisłej weryfikacji za pomocąset -u
na początku skryptu.Spacje wokół
=
.
Nigdy nie pisz tak:VARIABLE = "value"
. Powoduje to błąd.Problemy z uprawnieniami.
Jeśli skrypt nie ma prawa do wykonania, dodaj je za pomocąchmod +x
.
Zadanie praktyczne
Napisz skrypt, który:
- Pyta o imię użytkownika.
- Wyświetla powitanie.
- Pokazuje aktualną datę i godzinę.
Napisz skrypt, który:
- Pyta użytkownika o nazwę pliku.
- Tworzy plik, jeśli nie istnieje, lub informuje, że plik już istnieje.
Teraz znasz podstawy skryptów bash! Pozostało nauczyć się dodawać warunki i pętle, ale to już temat na kolejny wykład. Do przodu, ku automatyzacji świata!
GO TO FULL VERSION