5 przykładów skryptów Bash pomocnych w nauce programowania w systemie Linux
Szybkie linki
⭐ Jak wydrukować Hello World w Bash
⭐ Tworzenie katalogu przez odczyt danych wejściowych
⭐ Tworzenie katalogu przy użyciu argumentów wiersza poleceń
Usuwanie pliku za pomocą funkcji Bash
⭐ Tworzenie podstawowego kalkulatora do obliczeń arytmetycznych
Skrypty Bash stanowią bardzo rozpowszechniony i łatwo dostępny sposób, za pomocą którego użytkownicy mogą programować swoje urządzenia komputerowe oparte na systemie Linux.oparte na systemie Linux. Dostarczenie podstawowych próbek skryptów ułatwi zrozumienie podstawowych procesów i zapewni wprowadzenie do podstawowych zasad programowania Bash.
Jak wydrukować Hello World w Bash
Rzeczywiście, szanowana demonstracja “Hello World” służy jako doskonałe wprowadzenie do zawiłości każdego języka kodowania, w tym szanowanego języka skryptowego Bash.
Aby wygenerować dopracowany wynik w języku Bash, można zastosować zwięzłą i ekspresyjną składnię wiersza poleceń, która wykorzystuje wbudowane polecenia i parametry. Proces drukowania “Hello World” polega na wywołaniu narzędzia echo z odpowiednimi argumentami w celu renderowania tekstu na ekranie terminala.
Otwórz odpowiedni edytor tekstu, taki jak Microsoft Word lub Google Docs, i rozpocznij pracę nad nowym dokumentem, który zawiera poniższe linie kodu źródłowego:
⭐ Pierwsza linia skryptów Bash powinna zawsze wyglądać następująco:
#!/bin/bash
Dyrektywa shebang, oznaczana symbolem “#!”, po którym następuje ścieżka do wykonywalnego pliku binarnego i interpretowana przez program ładujący systemu operacyjnego, służy jako krytyczny element w określaniu odpowiedniego interpretera do wykonania danego skryptu. W szczególności, napotykając polecenie shebang “#!/bin/bash” w pliku skryptu, system operacyjny wywołuje interpreter Bash, aby odpowiednio wykonać skrypt.
⭐ Każda linia zaczynająca się od symbolu # jest komentarzem. Linia shebang jest szczególnym przypadkiem, ale możesz użyć własnych komentarzy, aby wyjaśnić swój kod. Dodaj komentarz w linii 2, np.:
# Print some text from a bash script
⭐ Możesz wydrukować na standardowe wyjście za pomocą polecenia echo, po którym następuje wartość, którą chcesz wydrukować. Dodaj następujące polecenie w linii 3:
echo "Hello World"
Podczas tworzenia skryptu w języku Bash zaleca się przestrzeganie konwencji nazewnictwa poprzez dołączenie rozszerzenia “.sh” do nazwy pliku skryptu. Chociaż nie jest to ściśle wymagane, stosowanie takiej konwencji może pomóc w łatwiejszej identyfikacji i organizacji skryptów.
⭐ Aby uruchomić skrypt, należy uczynić plik wykonywalnym.Użyj polecenia chmod (“change mode”) wraz z argumentem \\+x (“executable”) i nazwą skryptu powłoki:
chmod \\+x hello_world.sh
⭐ Użyj tego polecenia, aby uruchomić skrypt z jego katalogu:
./hello_world.sh
⭐ Po uruchomieniu skrypt wyświetli w terminalu tekst “Hello World”:
Tworzenie katalogu poprzez odczyt danych wejściowych
Włączenie funkcji wykonywania poleceń zwykle wprowadzanych w terminalu, takich jak tworzenie nowego katalogu za pomocą polecenia mkdir w skrypcie, jest możliwe dzięki implementacji niestandardowych skryptów.
⭐ Rozpocznij od tej samej linii shebang, co poprzednio:
#!/bin/bash
⭐ Zapytaj użytkownika o nazwę katalogu, używając polecenia echo, jak poprzednio:
echo "Enter new directory name:"
⭐ Użyj wbudowanego polecenia read, aby pobrać dane wejściowe użytkownika. Pojedynczy argument określa zmienną, w której powłoka będzie przechowywać dane wejściowe:
read newdir
⭐ Gdy trzeba użyć wartości przechowywanej w zmiennej, należy poprzedzić jej nazwę symbolem dolara ( $ ). Możesz przekazać zawartość zmiennej wejściowej jako argument do polecenia mkdir, aby utworzyć nowy katalog:
mkdir $newdir
⭐ Po uruchomieniu tego skryptu pojawi się monit o wprowadzenie danych. Wprowadź poprawną nazwę katalogu, a zobaczysz, że skrypt utworzy go w bieżącym katalogu:
Utwórz katalog za pomocą argumentów wiersza poleceń
Zamiast ręcznego wprowadzania danych wejściowych, wiele programów wiersza poleceń systemu Linux umożliwia podawanie argumentów podczas wykonywania w celu wpłynięcia na ich działanie.
W ramach skryptu możliwe jest wykorzystanie zmiennych od $1 do $9 do reprezentowania wartości argumentów odpowiednio od pierwszego do dziewiątego. Konkretne zastosowanie lub cel, dla którego te zmienne są wykorzystywane, może się różnić w zależności od wymagań danego zadania.
⭐ Utwórz katalog za pomocą polecenia mkdir z poprzedniego przykładu. Jednak tym razem użyj wbudowanej zmiennej $1:
#!/bin/bash
mkdir $1
⭐ Uruchom skrypt, tym razem przekazując wybraną nazwę nowego katalogu jako argument:
./arg_dir.sh Test
Podczas wykonywania skryptu bez podania jakichkolwiek danych wejściowych można napotkać błąd użycia rozpoczynający się od “mkdir”.
W przypadku braku argumentów wiersza poleceń, pierwszy parametr pozycyjny ($1) zwróci pustą wartość. Podczas wykonywania polecenia “mkdir” w skrypcie, nie jest do niego przekazywany żaden argument, co skutkuje błędem zwracanym przez polecenie “mkdir”.Aby obejść ten problem, można samodzielnie zweryfikować takie warunki i zamiast tego podać bardziej przyjazny dla użytkownika komunikat o błędzie.
⭐ Jak zawsze, zacznij od linii shebang:
#!/bin/bash
⭐ Przed wywołaniem mkdir sprawdź, czy pierwszy argument jest pusty (tj. bez argumentów). Można to zrobić za pomocą instrukcji if Basha, która uruchamia kod na podstawie warunku:
if ["$1" = ""]; then
⭐ Jeśli pierwszy argument jest pusty, wypisz błąd i zakończ skrypt:
echo "Please provide a new directory name as the first argument"
exit
⭐ Nieco dziwne słowo kluczowe “fi” (“if” odwrócone) sygnalizuje koniec instrukcji if w Bash:
fi
⭐ Twój skrypt może teraz kontynuować jak poprzednio, aby obsłużyć przypadek, gdy argument jest obecny:
mkdir $1
Podczas wykonywania zaktualizowanej iteracji dzisiejszego programu konieczne jest podanie wszystkich wymaganych parametrów wejściowych; niezastosowanie się do tego spowoduje wygenerowanie powiadomienia alarmowego informującego użytkownika o takim niedopatrzeniu.
Usuwanie pliku za pomocą funkcji Bash
W przypadku napotkania powtarzającego się kodu, korzystne może być zawarcie go w funkcji. Pozwala to na implementację logiki funkcji w dowolnym miejscu, po prostu wywołując ją w razie potrzeby.
Oczywiście, oto ilustracja funkcji, która eliminuje określony plik.
⭐ Zacznij od linii shebang:
#!/bin/bash
⭐ Zdefiniuj funkcję, wpisując jej nazwę, a następnie puste nawiasy i polecenia w nawiasach klamrowych:
del_file() {
echo "deleting $1"
rm $1
}
Następnie można wywołać funkcję i przekazać jej nazwę pliku do usunięcia:
del_file test.txt
Wywołanie funkcji powoduje przypisanie unikalnej zmiennej specjalnej “$?” z kodem wyjścia ostatniego uruchomionego polecenia. Ten kod wyjścia służy jako skuteczny środek do oceny błędów i może być wykorzystany do określenia, czy polecenie “rm” zostało wykonane pomyślnie, czy nie, jak pokazano w tym przykładzie.
if [ $? -ne 0 ]; then
echo "Sorry, could not delete the file"
fi
Tworzenie podstawowego kalkulatora do obliczeń arytmetycznych
Poniższa instancja stanowi przykład podstawowego urządzenia obliczeniowego. Po uruchomieniu użytkownik wprowadzi dwie liczby i wybierze funkcję arytmetyczną do wykonania na nich.
Oto kod dla calc.sh:
#!/bin/bash
# Take operands as input
echo "Enter first number: "
read a
echo "Enter second number: "
read b
# Input type of operation
echo "Enter Arithmetic Operation Choice :"
echo "Addition"
echo "Subtraction"
echo "Multiplication"
echo "Division"
read choice
# calculator operations
case $choice in
1)
result=`echo $a \\+ $b | bc`
;;
2)
result=`echo $a - $b | bc`
;;
3)
result=`echo $a \* $b | bc`
;;
4)
result=`echo "scale=2; $a / $b" | bc`
;;
esac
echo "Result: $result"
Rozważmy wykorzystanie wyrażenia case
w Bash, które służy jako analogiczna konstrukcja do instrukcji switch obecnej w różnych językach programowania.Umożliwia to ocenę wartości parametru względem wielu z góry określonych wartości, a następnie wykonanie odpowiedniej funkcji w oparciu o wynik takiej oceny.
Ten skrypt wykorzystuje poleceniebcc w celu wykonania każdej operacji arytmetycznej.