Wgląd w „zmienne” Linuksa w języku skorupowym - część 9

Wgląd w „zmienne” Linuksa w języku skorupowym - część 9

Napisaliśmy już serię artykułów Skrypty Linux Shell który był ciepły mile widziany w tym czasie i było to znacznie istotne nawet teraz. Oto link do kolekcji artykułów na temat skorupy.

  1. Naucz się scenariuszy Linux Shell

Tutaj w tym artykule zobaczymy zmienne, jego wykonanie i implementacja w skrypcie Shell.

Zmienne Linux Scripting Shell

Zapisywanie wyjścia

Wyjście polecenia można przekierować do standardowego wyjścia lub pliku i może być przechowywane w zmiennej. Jeśli wyjście polecenia jest wystarczająco duże, tak że nie pasuje do ekranu, pozostawiamy tylko opcję zapisania wyjścia na plik w zmiennej. Jedną zaletą oszczędzania mocy na zmiennej jest szybsza prędkość egzaminu. Zmienne są zapisywane w pamięci, a zatem są szybkie w porównaniu z pobieraniem z pliku.

Zmienne w języku skrypowym

Zmienne są ważnym komponentem używanym w skryptowaniu powłoki i są zadeklarowane za pomocą polecenia Bash „Ogłosić". Zadeklarować zmienną, powiedzpoziom', musimy wykonać poniższe polecenie.

$ poziom zadeklarowania

Notatka: Musimy użyć „dawać podobne role aktor”, Wbudowane instrukcje dla kompatybilności Korn Shell. „Deklaracja” jest bardziej zaawansowana i zawiera wszystkie funkcje, dlatego jest zalecane przy użyciu BASH.

Zasady
  1. Nazwa zmiennej musi uzasadnić, użycie zmiennej w skrypcie.
  2. Używanie tej samej nazwy zmiennej w całym programie jest silnie zalecane.
  3. Nazwa zmiennych może być wielkimi, a także małymi literami, ale według poleceń powłoki konwencji są małymi literami, a zatem powinniśmy używać nazwy zmiennych w wielkim poziomie, aby usunąć wszelkie zamieszanie. mi.G., Total_bill_amount, sell_report, order_receipt itp.

Realizacja

Zmiennej można przypisać wartość za pomocą znaku równego (=). Aby przypisać pusty ciąg do zmiennej, nie możemy dostarczyć żadnej wartości po równym znaku.

$ Poziom =

Sprawdź wartość przechowywaną w zmiennym „poziomie” jako.

$ printf „%i” poziom $

printf, polecenie większość 'C„Programiści są świadomi, drukuje dane. %I - Reprezentuje liczbę całkowitą. Możemy to zastąpić na %C dla charakteru lub %C dla ciągu, w razie potrzeby.

$ Poziom: Zwróć uwagę na '$„który działa jako zastępca wartości zmiennej”POZIOM'.

Przykładowy wyjście
$ printf „%i” poziom 0

Przypisz wartość do zmiennej.

$ Poziom = 0

Sprawdź przechowywane dane w zmiennej.

$ printf „%i” poziom 0

NOTATKA: Warto zauważyć, że w obu przypadkach, kiedy nie przypisaliśmy wartości do zmiennej i kiedy przypisaliśmy wartość '0„do zmiennej”POZIOM„Wyjścia 0. Chociaż wyjście jest takie same w obu przypadkach, ale skrypt powłoki obsługuje oba deklarację zmienną inaczej.

Przypisz nową wartość do zmiennej.

$ Poziom = 121

Sprawdź przechowywane dane w zmiennej.

$ printf „%i” poziom 121 $

Unset a Variable

Ogłosić jest poleceniem bash i tworzy zmienną tylko po wykonaniu. Tak utworzona zmienna pozostaje w pamięci, dopóki skrypt się nie zatrzyma lub zmienna zostanie zniszczona.

poziom $ unset

Zmienne zmienne w Bash

Bash się skończył 50 zmienne predefiniowane. Niektóre z tych zmiennych mają szczególne znaczenie związane z Bash E.G., zmienna LOSOWY Wyświetla liczbę losową. Jeśli jest niezajemny, a następnie ponownie zdefiniowany, oryginalna wartość zmiennej jest tracona na zawsze. Stąd zaleca się, aby nie używać żadnej zmiennej zdefiniowanej przez system.

Oto lista niektórych przydatnych zmiennych Bash.

  1. Bash-pełna nazwa bash.
  2. Bash_env-in skrypt powłoki, nazwa pliku profilu wykonanego przed uruchomieniem skryptu.
  3. Bash_version-wersja Bash (na przykład 2.04.0 (1) -reasease).
  4. Kolumny-liczba znaków na wiersz na wyświetlaczu (na przykład 80).
  5. Nazwa hosta-nazwa komputera. W niektórych wersjach Linux może to być nazwa maszyny. Na innych może to być w pełni kwalifikowana nazwa domeny.
  6. Typ typu hosta komputera.
  7. Dom-nazwa twojego katalogu domowego.
  8. Ostype-nazwa systemu operacyjnego.
  9. Oddzielona ścieżka lista ścieżek wyszukiwania, aby znaleźć polecenie do wykonania.
  10. PPID-identyfikator procesu procesu nadrzędnego powłoki.
  11. Monit_command-command do wykonania przed ustawieniem ciągu podstawowego podpowiedzi PS1.
  12. PWD-bieżący katalog roboczy (zgodnie z poleceniem CD).
  13. Losowe zwrotnie liczbę losową między 0 a 32767 za każdym razem, gdy jest ona odwoływana.
  14. Shell-preferowana powłoka do użycia; W przypadku programów, które rozpoczynają dla Ciebie skorupę.
  15. Termin-typ emulacji końcowej (na przykład konsola).

Zasada dzielania słów.

$ Poziom = 0 $ printf "%i" $ poziom 0 i $ poziom = "0" $ printf "%i" $ poziom 0

W obu przypadkach wyjście pozostaje takie same. Więc jaka jest różnica w wyniku podczas korzystania z cytatu?

Sprawdźmy to samo z różnymi danymi zmiennymi.

$ Poziom = 0; 1; 2; 3; 4; 5 Bash: 1: Komenda Nie znaleziono Bash: 2: Polecenie Nie znaleziono Bash: 3: Komenda Nie znaleziono Bash: 4: Komenda Nie znaleziono Bash: 5: Nie znaleziono komendy
$ printf „%i” poziom 0

Nie wspominając, wyjście jest nieprawidłowe. Bash zajmuje przestrzeń po '0„Jako zakończenie, a zatem wartość zmiennej jest ustawiona jako”0'. Teraz staramy się używać cytatu dla zmiennych jak poniżej.

$ Poziom = ”0; 1; 2; 3; 4; 5 ”$ printf"%s "$ poziom 0; 1; 2; 3; 4; 5

Wciąż wynik jest nieprawidłowy. Bash wziął zmienne wartości i usunął wszystkie przestrzenie między nimi. Stąd printf nie zinterpretowano 0,1,2,3,4,5 jako odrębne wartości. Więc jakie jest rozwiązanie?

printf „%s” „$ poziom” 0; 1; 2; 3; 4; 5

Tak! Rozwiązanie jest rozwiązywaniem zastępowania zmiennej. Cytaty grupują postacie w Shell i interpretują postacie specjalne w znaczący sposób.

Cytaty mogą być używane z tyłu i dobrym pomysłem jest zamknięcie zmiennych podstawień cytatami. Ponadto można go użyć do oddzielenia ogólnego tekstu od cytatów. Oto przykład.

$ Poziom = 5 $ flag_message = „Usułem poziom” „$ poziom” ”. Zasługuję na uznanie.„$ printf„%s ”„ $ flag_message ”
„Wyczyściłem poziom5. Zasługuję na uznanie."

Oddzielenie fragmentów cytowanego tekstu z przestrzenią spowoduje ten sam problem, jak omówiono powyżej. Bash będzie traktował białą przestrzeń jako zakończenie. Innym sposobem zastępowania zmiennego jest to.

$ Poziom = 5 $ flag_message = "Wyczyściłem poziom $ poziom. Zasługuję na uznanie.„$ printf„%s ”„ $ flag_message ”„ Wyczyściłem poziom 5. Zasługuję na uznanie."

Pojedyncze cytaty ogranicza bash od drukowania znaków specjalnych.

$ printf „%s” '$ flag_message' „$ flag_message”

Backslash (/)

BackSlash działa jak pojedynczy cytat dla jednej postaci. Czy myślałeś, jak wydrukujesz (")?

$ printf "%c" "\" ""

Gdy %Q zgrupowane z printf, zapewnia backSlash po każdym słowie, aby zapewnić odstępy słów.

$ Poziom = 5 $ flag_message = ""Wyczyściłem poziom $ poziom. Zasługuję na uznanie.„$ printf„%q ”„ $ flag_message ”„ i \ ma \ cleared \ poziom \ 5.\ I \ zasługują na uznanie.""

To wszystko na teraz. Zawsze staramy się zapewnić naszym czytelnikom artykuły, które są dla nich przydatne od czasu do czasu. Powyższy artykuł jest ogromny, dlatego reszta tematów z przykładami zostanie wyprodukowana w następnym artykule, który będzie zawierał „atrybuty zmiennej”, „eksportowanie zmiennej” itp.

Do tego czasu bądź na bieżąco i związany z Tecmint.com. Nie zapomnij przekazać nam cennej informacji zwrotnej w sekcji komentarzy poniżej.

"