CodeGym /Kursy /Docker SELF /Wprowadzenie do skryptów bash: składnia, zmienne, komendy...

Wprowadzenie do skryptów bash: składnia, zmienne, komendy

Docker SELF
Poziom 3 , Lekcja 3
Dostępny

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?

  1. Tworzymy plik:

    nano hello_world.sh
    
  2. Dodajemy linie:

    #!/bin/bash
    echo "Cześć, świecie!"
  3. Ustawiamy plik jako wykonywalny:

    chmod +x hello_world.sh
    
  4. 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.

  1. Tworzymy plik:

    nano file_checker.sh
    
  2. 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
  3. Ustawiamy plik jako wykonywalny i uruchamiamy:

    chmod +x file_checker.sh
    ./file_checker.sh
    
  4. 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:

  1. Brak shebang.
    Bez linii #!/bin/bash twój skrypt może próbować zostać wykonany w innym interpreterze, co prowadzi do błędów.

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

  3. Spacje wokół =.
    Nigdy nie pisz tak: VARIABLE = "value". Powoduje to błąd.

  4. Problemy z uprawnieniami.
    Jeśli skrypt nie ma prawa do wykonania, dodaj je za pomocą chmod +x.

Zadanie praktyczne

  1. Napisz skrypt, który:

    • Pyta o imię użytkownika.
    • Wyświetla powitanie.
    • Pokazuje aktualną datę i godzinę.
  2. 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!

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION