Wgląd w „zmienne” Linuksa w języku skorupowym - część 9
- 1932
- 297
- Maria Piwowarczyk
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.
- Naucz się scenariuszy Linux Shell
Tutaj w tym artykule zobaczymy zmienne, jego wykonanie i implementacja w skrypcie Shell.
Zmienne Linux Scripting ShellZapisywanie 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
- Nazwa zmiennej musi uzasadnić, użycie zmiennej w skrypcie.
- Używanie tej samej nazwy zmiennej w całym programie jest silnie zalecane.
- 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.
- Bash-pełna nazwa bash.
- Bash_env-in skrypt powłoki, nazwa pliku profilu wykonanego przed uruchomieniem skryptu.
- Bash_version-wersja Bash (na przykład 2.04.0 (1) -reasease).
- Kolumny-liczba znaków na wiersz na wyświetlaczu (na przykład 80).
- 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.
- Typ typu hosta komputera.
- Dom-nazwa twojego katalogu domowego.
- Ostype-nazwa systemu operacyjnego.
- Oddzielona ścieżka lista ścieżek wyszukiwania, aby znaleźć polecenie do wykonania.
- PPID-identyfikator procesu procesu nadrzędnego powłoki.
- Monit_command-command do wykonania przed ustawieniem ciągu podstawowego podpowiedzi PS1.
- PWD-bieżący katalog roboczy (zgodnie z poleceniem CD).
- Losowe zwrotnie liczbę losową między 0 a 32767 za każdym razem, gdy jest ona odwoływana.
- Shell-preferowana powłoka do użycia; W przypadku programów, które rozpoczynają dla Ciebie skorupę.
- 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.
"- « Włączanie użytkownika i hasła chronić katalogi internetowe na znayal Webserver - część 10
- MySQLDumper A PHP i Perl oparte na narzędziu kopii zapasowej bazy danych MySQL »