Zmienne są istotną częścią programowania lub możemy powiedzieć, że są duchem języka programowania. Zmienne określają lokalizację pamięci za pomocą znaków, numerycznych i alfanumerycznych. Służy do tworzenia odniesień do nich i manipulowania nimi w programie komputerowym.
Jakie są zmienne?
Zmienne to kontenery przechowujące dane lub użyteczną informację jako wartość wewnątrz nich. Poniżej znajduje się składnia zmiennej:
Variable_name =value
Zmienna to połączona forma dwóch słów, tj. zmienna + zdolna, co oznacza, że jej wartość można zmieniać i można jej używać wielokrotnie.
wstaw w klawiaturę
Zmienna jest nazywana tymczasowym magazynem dowolnego rodzaju danych, takich jak liczba całkowita, zmiennoprzecinkowa, znak itp. Nazwa zmiennej może zawierać alfabetów, cyfr i podkreśleń , a jego nazwę można zaczynać wyłącznie od liter i podkreśleń.
Uwaga: Nie możemy zdefiniować nazwy zmiennej zaczynającej się od dowolnej cyfry.
Czym są zmienne Bash?
Nie możemy używać zmiennych bash bez odpowiednich informacji ( składnia, typy danych, typy, działanie ) na ten temat, więc przejdźmy przez ten krótki samouczek, aby uzyskać odpowiedni przegląd zmiennych Bash.
Na początek poznaj składnię.
Składnia:
Variable_name=value
Zestaw reguł definiowania zmiennych Bash:
- Poprzedź nazwę zmiennej znakiem dolara ($) podczas odczytu lub drukowania zmiennej.
- Pomiń znak dolara ($) podczas ustawiania zmiennej o dowolnej wartości.
- Nazwa zmiennej może być alfanumeryczna lub może być zapisana ze znakiem podkreślenia (_).
- W nazwie zmiennej rozróżniana jest wielkość liter: x i X są uważane za dwie różne zmienne.
- nazwę zmiennej można zapisać albo UPPER_CASE, LOWER_CASE, albo kombinacją obu, jak chcesz.
- Zmienną można umieścić w dowolnym miejscu skryptu Bash lub w wierszu poleceń, ponieważ w czasie wykonywania Bash zastąpi ją przypisaną wartością. Stało się to możliwe dzięki wykonaniu podstawienia przed uruchomieniem polecenia.
- Po obu stronach znaku równości (=) pomiędzy nazwą zmiennej a jej wartością nie powinny znajdować się spacje. Oto kilka przykładów Nieprawidłowe zmienne posiadające białe znaki (oznaczone kropkami ...) między nimi, jak podano poniżej:
zmienna1=...zmienna1
zmienna2...=zmienna2
zmienna3...=...zmienna3 - Nie ma potrzeby używania cudzysłowów, pojedynczych lub podwójnych, aby zdefiniować zmienną o wartości jednoznakowej, np zmienna1=zmienna . Aby wprowadzić wiele słów lub ciąg znaków jako pojedynczy element w zmiennej, użyj cudzysłowów w celu umieszczenia treści w tej zmiennej.
- Pojedynczy cudzysłów („”) pomaga traktować każdą postać.
- Podwójny cudzysłów („”) pomaga w dokonaniu podstawienia.
Typy danych
W formalnych językach programowania musisz zdefiniować typ danych dowolnej zmiennej w momencie jej deklaracji. Na przykład:
int year=2012 char comp_name='jtp'
Ale w przypadku Bash nie musisz definiować typu danych żadnej zmiennej w momencie deklaracji zmiennej. Zmienne Bash są bez typu , co oznacza, że wystarczy wpisać nazwę zmiennej, przypisując jej wartość, a ona automatycznie uwzględni ten typ danych.
Tak, że jeśli przypiszesz do zmiennej jakąkolwiek wartość liczbową, będzie ona działać jako liczba całkowita, a jeśli przypiszesz do zmiennej wartość znakową, będzie to String.
year=2012 comp_name=jtp
używając polecenia echo, odczytaj je, dodając znak $ przed ich nazwą, np
echo $rok
echo $imie
Rodzaje zmiennych Basha
Istnieją dwa typy zmiennych w powłoce lub dowolnym systemie UNIX.
- Zmienne zdefiniowane przez system
- Zmienne zdefiniowane przez użytkownika
1. Zmienne zdefiniowane systemowo: Są to predefiniowane zmienne tworzone i obsługiwane przez sam system operacyjny LINUX. Ich standardowa konwencja jest taka, że zazwyczaj są one definiowane wielkimi literami, tj. UPPER_CASE. Zatem ilekroć widzisz zmienną zdefiniowaną wielkimi literami, najprawdopodobniej są to zmienne zdefiniowane przez system.
Są to następujące zmienne zdefiniowane przez system, jak podano poniżej:
1. BASZ reprezentuje nazwę powłoki.
Przykład:
BASH=/usr/bin/bash
2. BASH_VERSION określa wersję powłoki przechowywaną w Bash.
Przykład:
BASH_VERSION=4.2.46(2)
3. KOLUMNY podaj nr. kolumn dla naszego ekranu.
Przykład:
COLUMNS=80
4. DOM określa katalog domowy użytkownika.
Przykład:
HOME=/home/jatpoint
5. NAZWA LOGOWANIA określa nazwę użytkownika rejestrującego.
Przykład:
LOGNAME=javatpoint
6. OSTYP informuje o typie systemu operacyjnego.
Przykład:
OSTYPE=linux-gnu
7. PWD reprezentuje bieżący katalog roboczy.
Przykład:
PWD=/home/javatpoint
8. NAZWA UŻYTKOWNIKA określa nazwę aktualnie zalogowanego użytkownika.
Przykład:
USERNAME=javatpoint
Aby poznać listę tych zmiennych w swoim systemie, wpisz polecenia zestaw, pow , I drukuj w terminalu wiersza poleceń w następujący sposób:
1. Wpisanie ustawić Komenda.
Wyjście:
2. Wpisanie śr Komenda
Wyjście:
3. Wpisz polecenie printenv
Wyjście:
Nazwijmy te zmienne za pomocą powłoki Bash. Poniżej przedstawiono podane kroki:
Krok 1: Utwórz skrypt o nazwie Bash_sdvar i wpisz następujący kod w konsoli Bash w następujący sposób:
#! /bin/bash # Bash System-defined Variables echo $HOME # Home Directory echo $PWD # current working directory echo $BASH # Bash shell name echo $BASH_VERSION # Bash shell Version echo $LOGNAME # Name of the Login User echo $OSTYPE # Type of OS
Krok 2. Spójrz na konsolę Bash podaną poniżej:
Krok 3. Zapisz i wykonaj skrypt. Wyświetli wynik, jak widać na rysunku poniżej.
Wyjście:
2. Zmienne zdefiniowane przez użytkownika: Zmienne te są tworzone i utrzymywane przez użytkownika. Ogólnie rzecz biorąc, tego typu zmienne są zdefiniowane w LOWER_CASES. Nie ma ścisłej zasady zapisywania tych zmiennych małymi literami. Możemy je zapisać także wielkimi literami.
Utwórzmy skrypt Bash, aby zdefiniować te zmienne. Wykonaj podane poniżej kroki:
Krok 1. Utwórz skrypt o nazwie bash_yard i wpisz następujący kod w konsoli Bash:
#! /bin/bash # User-Defined Variables name=Peter ROLL_NO=5245325 echo 'The student name is $name and his Roll number is $ROLL_NO.'
Krok 2. Zobacz kod w konsoli Bash.
Krok 3. Zapisz i wykonaj skrypt.
Wyjście:
Działanie zmiennych Basha
Po podstawowej demonstracji zmiennych, przejdźmy do dowiedzenia się, jak one działają?
Istnieją dwie akcje, które zwykle wykonujemy dla zmiennej w Bash, jak podano poniżej:
- ustawienie wartości dla zmiennej
- odczytanie wartości dla tego.
Wartość zmiennej można ustawić na różne sposoby, najczęstszym sposobem jest bezpośrednie ustawienie wartości. Aby odczytać zmienną, możemy umieścić jej nazwę (poprzedzoną znakiem $) w dowolnym miejscu skryptu.
Bash najpierw sprawdza wszystkie nazwy zmiennych tak, jakby były obecne w skrypcie. Następnie interpretuje każdą linijkę naszego skryptu. Po zidentyfikowaniu każdej zmiennej zastępuje nazwę zmiennej przypisaną jej wartością. W końcu interpretuje/uruchamia tę linię kodu i kontynuuje ten proces dla każdej zakodowanej linii naszego skryptu.
UWAGA: Oba rodzaje zmiennych w Bashu (omawialiśmy) działają zarówno na terminalu, jak i na skrypcie Bash. Zobaczmy, jak działają na terminalu i Bashu na prostym przykładzie:
Przykład: Wywołaj nazwę użytkownika przez XYZ, jego lokalizację, w której obecnie pracuje, oraz wersję powłoki Bash, której używa do tworzenia skryptów Bash.
1. Praca na terminalu
2. Praca nad powłoką Bash
Zobacz skrypt nazwany przez Bash_Var podany poniżej:
W 3r & Dlinia skryptu , zadeklarowaliśmy zmienną NAZWA UŻYTKOWNIKA do przechowywania nazwy użytkownika XYZ jako jego wartość.
W dwóch ostatnich linijkach , wydrukowaliśmy zamierzoną wiadomość za pomocą Echo Komenda.
W tej wiadomości znajdują się dwie zmienne i jedno polecenie. Każdy z nich jest poprzedzony znakiem dolara ($), gdzie:
Dla lepszego zrozumienia utwórz ten skrypt, postępując zgodnie z podanym kodem:
#! /bin/bash #Bash Variables USER_NAME=XYZ echo Hey there! $USER_NAME is any user currently working on the directory $PWD with Bash Shell Version $BASH_VERSION.
Wyświetli dane wyjściowe, jak widać na poniższym obrazku:
Wyjście:
Istnieje więcej przykładów ćwiczenia zmiennych zarówno na terminalu, jak i na powłoce Bash. Podążając za zestaw reguł (omówione wcześniej) mają następującą praktykę dotyczącą zmiennych:
A. Korzystanie z terminala wiersza poleceń
1. Ustawianie zmiennych
2. Odczytywanie i odwoływanie się do zmiennych
3. Nieprawidłowe zmienne
4. Łączenie dwóch zmiennych łańcuchowych
5. Łączenie ciągów ze zmiennymi
UWAGA: Nie używaj pojedynczych cudzysłowów do łączenia dwóch zmiennych, a także do łączenia ciągów znaków ze zmiennymi. Tak, że jeśli połączysz ciągi znaków, umieszczając je w pojedynczych cudzysłowach, odczytanie ich nie będzie możliwe, jak widać na obrazku podanym poniżej:
B. Korzystanie ze skryptu Bash:
Jest to przykład łączenie zmiennych typu String.
Wyjście:
Argumenty wiersza poleceń
Argumenty wiersza poleceń służą do zwiększenia dynamiki skryptu poprzez przekazanie danych wejściowych do kodu. Argumenty te przekazujemy w czasie wykonywania skryptu w następującej formie:
./script_name arg1 arg2 arg3.....
Pomiędzy nazwą skryptu a wszystkimi przekazywanymi argumentami nie powinno być spacji.
Jak używać argumentów wiersza poleceń?
W powłoce Bash są one używane w odniesieniu do następujących parametrów domyślnych lub zmiennych specjalnych.
Poniżej znajdują się dwie metody, których używamy do przekazywania argumentów wiersza poleceń:
Metoda 1: Używanie numeru pozycji
Jest to pierwszy sposób dostępu do argumentów przy użyciu parametrów domyślnych (...). Poniższy obrazek wyjaśnia to:
Wyjście:
Metoda 2: Korzystanie z tablicy.
Jest to drugi sposób przekazywania argumentów jako tablicy. Postępuj zgodnie z podanym algorytmem, aby zastosować tę metodę.
Krok 1: Utwórz skrypt Basha.
Krok 2: Zadeklaruj dowolną nazwę zmiennej i przypisz jej wartość jako $a w następującej formie:
variable_name=('$@')
Gdzie $@ jest domyślnym argumentem, który służy do przechowywania argumentów (przekazujemy) jako tablicę.
Krok 3: Wyświetl argumenty, definiując ich indeks tablicy w następującej formie:
${variable_name[i]}
Krok 4: Zapisz i zamknij skrypt.
Krok 5: Wykonaj skrypt, przekazując argumenty.
Zobacz następujący program:
Program:
#!/bin/bash args=('$@') echo ${args[0]} ${args[1]} ${args[2]} ${args[3]}
W konsoli Bash:
Wyjście:
Podstawienie poleceń
Według oficjalnej dokumentacji Basha
'Zastępowanie poleceń pozwala, aby dane wyjściowe polecenia zastąpiły samo polecenie. Bash wykonuje rozwinięcie, wykonując polecenie w środowisku podpowłoki i zastępując podstawienie polecenia standardowym wyjściem polecenia, usuwając wszelkie końcowe znaki nowej linii. Osadzone znaki nowej linii nie są usuwane, ale można je usunąć podczas dzielenia wyrazów.'
Podstawianie poleceń odnosi się do rozwinięcia, które wykonuje za nas Bash. Pobiera dane wyjściowe polecenia Bash, zapisuje je w zmiennej (zazwyczaj) i wyświetla z powrotem z echem.
Podstawienie poleceń oferuje elastyczność danych w zakresie skryptów i przypisania zmiennych. Posiadanie pojedynczego wyjścia z wiersza poleceń jest proste i łatwe. W przypadku, gdy dane wyjściowe przekraczają kilka linii, wówczas nowe linie końcowe są usuwane, a cała zawartość wyników kończy się w jednej linii.
Zobacz składnię do użycia:
Składnia
Klasyczna forma podstawiania poleceń w zmiennej lub podstawienia poleceń polega na użyciu cudzysłowów („...”), jak podano poniżej:
variable_name=`command_name` variable_name=`command_name [option...] argument1 argument2...` variable_name=`/path/to/command`
Teraz dokonujemy podstawienia poleceń, umieszczając je w nawiasach (poprzedzonych znakiem dolara ($)). Spójrz:
variable_name=$(command_name) variable_name=$(command_name [option...] argument1 argument2...) variable_name=$(path/to/command)
Wykonajmy więc podstawienie poleceń na przykładzie, zgodnie z dyskusją.
W tym przykładzie podstawiamy pojedyncze polecenie ls w zmiennej. Zobacz terminal.
Linia 1: Bez podstawienia poleceń dane wyjściowe są rozwijane w wielu wierszach.
Linia 2 i 3: W przypadku podstawienia poleceń wyjście kończy się na pojedynczej linii (oszczędność miejsca poprzez usunięcie nowo kończących się linii).
Poniżej znajduje się skrypt Bash do testowania podstawienia poleceń.
Program:
#! /bin/bash # command substitution lsResult=$(ls) echo 'My files are:' $lsResult
Zobacz konsolę Bash:
Wyjście: