W tym artykule omówimy wiele różnych metod, za pomocą których możemy zrozumieć, jak tworzyć i używać zmiennych w skrypcie Bash. Wykonaliśmy różne przykłady związane ze zmiennymi na Ubuntu 20.04 Dystrybucja Linux. Zacznijmy demonstrację.
Jak działają zmienne?
Jak wspomnialiśmy powyżej, zmienna jest tymczasowym przechowywaniem dla informacji.
Poniższe dwa działania, które możesz wykonać podczas używania zmiennej w skrypcie Bash:
Możesz docenić zmienne za pomocą różnych sposobów. Najczęstszym jest bezpośrednie ustawienie wartości na zmienną lub możesz ustawić jej wartość w wyniku przetwarzania poleceń lub programu.
Czytając zmienną, musimy umieścić swoją nazwę ze znakiem $ na początku tej zmiennej, którą możesz chcieć przeczytać. Przed wykonaniem każdego wiersza skryptu Bash, najpierw sprawdza, czy obecne są jakieś nazwy zmiennych. Znajduje każdą zmienną i zastępuje jej wartość nazwą zmiennej. Następnie rozpoczyna wykonywanie określonego wiersza kodu i powtarza proces dla następnego wiersza.
Istnieją kilka ważnych punktów na składni, które musisz śledzić podczas czytania zmiennej:
Możesz ustawić i odczytać dane ze zmiennej za pośrednictwem terminalu w następujący sposób: Po pierwsze, musisz otworzyć aplikację terminalową w swoim systemie. Otwórz terminal za pomocą skrótu klawiatury, naciskając „ctrl + alt + t”. Lub możesz go otworzyć za pomocą paska wyszukiwania uruchamiania aplikacji. Kliknij „Działania”, a następnie wpisz „Terminal” na pasku wyszukiwania, który zostanie wyświetlony na komputerze i naciśnij „Enter”. Zobaczysz następujące dane wyjściowe na ekranie terminalu. Kliknij ikonę terminalu i uruchom ją.
Podstawowa składnia deklaracji zmiennej; Ustawienie wartości zmiennej
Jak omówiliśmy wcześniej w Bash, nie musimy definiować typu zmiennej, gdy deklarujesz zmienną. Nie musisz deklarować zmiennej. Po prostu przypisz wartość do zmiennej, aby odwołać się do niej.
zmienna_nazwa = wartość
Na przykład chcemy przypisać wartość taką jak ciąg „Witamy w programowaniu Bash: Użycie zmiennych” do zmiennej o nazwie „var_str”. Za pomocą następującego polecenia możesz wykonać to zadanie:
var_str = "Welcome to Bash Programming: Używanie zmiennych"
W przeciwieństwie do większości innych nowoczesnych języków programowania, Bash oferuje wybredną składnię do ustawiania zmiennych. Powinieneś pamiętać, że nie ma potrzeby dodawania białej linie między nazwą zmiennej, równym symbolem i wartością, którą chcesz przypisać. W przeciwnym razie rzuci komunikat o błędzie.
my_var = „Przywitaj się”
W powyższym poleceniu otrzymasz błąd z powodu białej listy po równym znaku i przypisanej wartości.
Przykład: Deklaracja i odczyt ciągu za pomocą zmiennej
Weźmy przykład, w którym zapiszymy ciąg „Reguły: Jak używać zmiennej w bash”, a następnie wartość zmiennej jest pobierana za pośrednictwem polecenia ECHO, dołączając znak „$” na początku nazwy zmiennej. Poniższe polecenie należy śledzić, aby wyświetlić ciąg na terminalu:
$ my_var = "reguły: jak używać zmiennej w bashu"
$ echo $ my_var
W oknie terminalu zobaczysz następujące dane wyjściowe:
Jeśli nie użyjesz znaku „$”, wyjście programu wyświetli różne wyniki i możesz nie uzyskać wymaganego wyjścia. Pokażmy następujący przykład:
$ my_var = "reguły: jak używać zmiennej w bashu"
$ echo my_var
W powyższym poleceniu znak „$” jest usuwany o nazwie zmiennej „echo my_var”. Więc odzyskasz tylko nazwę zmiennej na wyjściu.
Prawidłowe nazwy zmiennych
Możesz przypisać nazwy zmiennych podkreślenia i sekwencje znaków alfanumerycznych.
Nazwa zmiennej powinna zacząć od znaków alfanumerycznych lub podkreślenia. Nie należy go uruchamiać od liczby ani cyfry.
Przykłady nazw zmiennych
Łączenie dwóch zmiennych wyjściowych
Nie musisz używać żadnego operatora do łączenia dwóch lub więcej zmiennych, podobnie jak inne języki.
Przykład
Na przykład używamy $ var1, w którym wartość ciągu do przechowywania, a $ var2 służy do przechowywania dowolnej liczby całkowitej lub wartości liczbowej. Wykonaj następujące polecenia na terminalu, które połączą wyjście Var1 i Var2.
$ var1 = „Cena domu to $”
$ var2 = 50
$ echo $ var1 $ var2
Następujące dane wyjściowe zostanie pokazane na terminalu po wykonaniu wyżej wymienionych poleceń:
Ważna uwaga:
Dane wyjściowe można wydrukować bez używania żadnych cytatów, ale jeśli chcesz używać cytatów, musisz tylko używać podwójnych kwot.
Połączenie dwóch zmiennych
Podwójne cytaty służą do odczytania wartości zmiennej w Bash.
Przykład
Weźmy przykład połączenia dwóch zmiennych. Użyliśmy podwójnych cytatów dla jednego instrukcji Echo i pojedynczego cytatu dla innej instrukcji Echo. Wykonaliśmy następujące polecenia na terminalu, które można sprawdzić poniżej wspomniane dane wyjściowe:
$ var = „zmienna konatenacja w”
$ echo „$ var Programming”
$ echo „$ var Programming”
Na powyższym zrzucie ekranu możesz zauważyć, że gdy użyjesz podwójnych cytatów z poleceniem Echo, odczytuje wartość zmienną. W przypadku pojedynczego cytatu nie jest w stanie odczytać wartości zmiennej.
Czy operacje arytmetyczne za pomocą zmiennych
W programowaniu bash możemy wykonywać różne zadania arytmetyczne, takie jak inne języki programowania. Zajmuje wartości liczbowe lub liczby całkowite jako ciągi. Jednak nie możesz wykonać żadnej operacji arytmetycznej za pomocą zwykłych prostych wyrażeń. W tym przypadku łączy tylko wartości liczbowe. Korzystając z podwójnych nawiasów początkowych i końcowych z wyrażeniem, możesz wykonywać operacje arytmetyczne.
Przykład
Na przykład mamy zmienną n, w której przechowywane jest 50 wartości liczbowych. Chcemy wtedy dodać więcej 20 do zmiennej, używając następującego polecenia, możesz wykonać tę operację:
$ n = 50
$ echo $ n
$ echo $ n+20
$ ((n = n+20))
$ echo $ n
W powyższym poleceniu widziałeś polecenie $ n+20 po prostu połącz dwie wartości. Nie daje ci pożądanego wyjścia. Dodając początkowe wsporniki ((n = n+20)), wykonałeś operację arytmetyczną z wynikiem 70.
Czy działanie arytmetyczne za pomocą polecenia BC
Inną metodą wykonywania operacji arytmetycznych jest użycie polecenia BC w Bash.
Przykład
Za pomocą następujących poleceń na terminalu możesz wykonywać zadania arytmetyczne:
$ n = 65
$ echo $ n/10 | pne
W powyższym kodzie widać, że gdy użyjesz polecenia BC do wykonywania działu operacji arytmetycznej, pominął części ułamkowe z wyniku.
$ n = 65
$ echo $ n/10 | BC -L
Gdy używasz opcji -L z poleceniem BS, w rezultacie otrzymujesz również wartość ułamkową.
Używanie zmiennych w pliku skryptu Bash
Możesz także zainicjować zmienną w skrypcie BASH przy użyciu tej samej metody, o której wspomniano w powyższych przykładach. Musisz jednak utworzyć plik skryptu Bash. Aby to zrobić, utwórz plik za pomocą edytora tekstu i wklej w nim następujący kod. Teraz zapisz to z .bash lub .rozszerzenie sh.
Przykład
W poniższym skrypcie zadeklarowaliśmy dwie zmienne jedna to ciąg, a druga ma wartości liczbowe. Chcemy odjąć 10 od podanej liczby. Wykonaj następujący skrypt w tym celu:
#!/bin/bash
Str = "Jak używać zmiennych w skrypcie bash"
# Wyświetl wartość ciągu
Echo $ str
NUM = 100
# Odejmij 10 wartości liczbowe od zmiennej NUM = 100
((wynik = $ NUM-10))
# Wyświetl wyjście numeryczne
Echo $ wynik
Na terminalu zobaczysz następujące dane wyjściowe:
Użycie zmiennych lokalnych i globalnych
Podobnie jak inne języki programowania, możesz zdefiniować zmienne lokalne i globalne w programowaniu BASH. Rozwińmy koncepcję zmiennych lokalnych i globalnych za pomocą przykładu.
Przykład
Na przykład w poniższym skrypcie BASH użyliśmy zmiennych lokalnych i globalnych. Poniższy skrypt ma jedną zmienną globalną o nazwie „NUM”, a dwie zmienne lokalne są używane o nazwie „num” i „m”.
Chcemy dodać dwie wartości zmienne za pomocą funkcji dodawania (). Kiedy ta funkcja wywoła wartość zmiennej lokalnej „NUM” do obliczeń, ale liczba, która jest zmienną globalną, pozostaje niezmieniona. Kiedy zadeklarujemy zmienne lokalne, musimy użyć lokalnego słowa kluczowego o nazwie zmiennej.
#!/bin/bash
NUM = 10
Dodatek funkcji ()
Lokalny numer = 10
Lokalny M = 10
((num = num+m))
Echo $ num
dodatek
Echo $ num
Uruchom powyższy skrypt za pomocą następującego polecenia:
$ Bash Addfun.cii
Następujące dane wyjściowe zostanie wyświetlone na terminalu po uruchomieniu powyższego skryptu:
Jak używać zmiennych tablicy w Bash
Tablice służą do przechowywania listy danych. Dlatego w skrypcie BASH możemy również używać zmiennych tablicy do przechowywania danych.
Przykład
Weźmy przykład, który pokaże, jak używać zmiennych tablicy w skrypcie Bash. Elementy tablic są oddzielone specyfikacją w programowaniu BASH. Tutaj wzięliśmy szereg 5 elementów. Nie mamy żadnej wcześniej zdefiniowanej funkcji, aby policzyć elementy całkowitej tablicy. W Bash # z * lub „@” służy do zliczenia całkowitej liczby elementów Array. Wszystkie elementy tablicy są oznaczone * znakiem. Użyliśmy pętli do iteracji w elementach tablicy. Następnie skrypt odczytuje wartości tablicy i z kluczem i wydrukuje wyjście na terminalu.
#!/bin/bash
my_arr = (Centos Ubuntu Debian Linux Mint Solaris MacOS Windows)
# Policz całkowitą liczbę elementów w tablicy
Total = $ #my_arr [*]
Echo „Całkowite elementy tablicy to: $ Total”
#Display Wartość każdego elementu tablicy
Echo „Wartości elementów tablicy:”
dla val in $ my_arr [*]
Do
printf " %s \ n" $ val
zrobione
#Display Wartość elementu każdej tablicy za pomocą klucza
Echo „Wartości elementów tablicy za pomocą klucza:”
dla klucza w $ !my_arr [*]
Do
printf " %4d: %s \ n" $ key $ my_arr [$ key]
zrobione
Następujące dane wyjściowe będzie wyświetlane na terminalu:
Podsumowujemy kilka ważnych kluczowych punktów dotyczących zmiennych w programowaniu BASH:
zmienna_nazwa = wartość
Przy ustawianiu wartości dla zmiennej. Musisz pamiętać, że nie ma potrzeby dodawania przestrzeni po obu stronach znaku =.
Wniosek
W tym artykule wyjaśniliśmy jasną koncepcję zmiennych BASH, że w jaki sposób możemy zadeklarować i odczytać wartości zmiennych w programowaniu BASH. Jeśli skorzystasz z wyżej wymienionych przykładów, będziesz mógł bardziej skutecznie poradzić sobie ze zmiennymi. Wykonaliśmy różne polecenia na terminalu, a także wykonaliśmy również w skrypcie Bash. Polecenia Bash w wierszu poleceń działają dokładnie tak samo jak w skrypcie Bash, ale kiedy masz duży kawałek kodu, możesz zarządzać nim w pliku skryptu, zamiast uruchomić jeden po drugim na terminalu.