logo

Zmienne Basha

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:

  1. Poprzedź nazwę zmiennej znakiem dolara ($) podczas odczytu lub drukowania zmiennej.
  2. Pomiń znak dolara ($) podczas ustawiania zmiennej o dowolnej wartości.
  3. Nazwa zmiennej może być alfanumeryczna lub może być zapisana ze znakiem podkreślenia (_).
  4. W nazwie zmiennej rozróżniana jest wielkość liter: x i X są uważane za dwie różne zmienne.
  5. nazwę zmiennej można zapisać albo UPPER_CASE, LOWER_CASE, albo kombinacją obu, jak chcesz.
  6. 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.
  7. 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
  8. 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.

  1. Zmienne zdefiniowane przez system
  2. 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:

Zmienne Basha

2. Wpisanie śr Komenda

Wyjście:

Zmienne Basha

3. Wpisz polecenie printenv

Wyjście:

Zmienne Basha

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:

Zmienne Basha

Krok 3. Zapisz i wykonaj skrypt. Wyświetli wynik, jak widać na rysunku poniżej.

Wyjście:

Zmienne Basha

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.

Zmienne Basha

Krok 3. Zapisz i wykonaj skrypt.

Wyjście:

Zmienne Basha

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

Zmienne Basha

2. Praca nad powłoką Bash

Zobacz skrypt nazwany przez Bash_Var podany poniżej:

Zmienne Basha

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:

    NAZWA UŻYTKOWNIKAjest zmienną zdefiniowaną przez użytkownika, która wywołuje nazwę użytkownika,BASH_VERSIONjest zmienną zdefiniowaną przez system, którą Shell wywołuje samą siebie. Służy do wydrukowania wersji Bash Shell,PWDpolecenie służy do wydrukowania aktualnej lokalizacji użytkownika.

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:

Zmienne Basha

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

Zmienne Basha

2. Odczytywanie i odwoływanie się do zmiennych

Zmienne Basha

3. Nieprawidłowe zmienne

Zmienne Basha

4. Łączenie dwóch zmiennych łańcuchowych

Zmienne Basha

5. Łączenie ciągów ze zmiennymi

Zmienne Basha

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:

Zmienne Basha

B. Korzystanie ze skryptu Bash:

Jest to przykład łączenie zmiennych typu String.

Zmienne Basha

Wyjście:

Zmienne Basha

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.

    0 dolarówokreśla nazwę skryptu, który ma zostać wywołany.1-9 dolarówprzechowuje nazwy pierwszych 9 argumentów lub może być używany jako pozycje argumentów.$#określa całkowitą liczbę (liczbę) argumentów przekazanych do skryptu.$*przechowuje wszystkie argumenty wiersza poleceń, łącząc je ze sobą.$@przechowuje listę argumentów jako tablicę.$?określa identyfikator procesu bieżącego skryptu.$$określa status wyjścia ostatniego polecenia lub ostatniego procesu wykonania.$!pokazuje identyfikator ostatniego zadania w tle.

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:

Zmienne Basha

Wyjście:

Zmienne Basha

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:

Zmienne Basha

Wyjście:

Zmienne Basha

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.

Zmienne Basha

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:

Zmienne Basha

Wyjście:

Zmienne Basha