Zmienna zagnieżdżona i predefiniowane zmienne BASH w Linuksie - Część 11

Zmienna zagnieżdżona i predefiniowane zmienne BASH w Linuksie - Część 11

Ostatnie dwa artykuły na temat Bash Shell, w których szczegółowo omówiliśmy zmienne, zostały bardzo docenione wśród naszych czytelników. My Tecmint-Team bardzo chętnie dostarczą Ci najnowsze, aktualne i odpowiednie tematy omówione szczegółowo. Ponadto zawsze staramy się dotknąć głównych perspektyw odpowiednich tematów.

Zmienne zagnieżdżone w skonstrukcji

Oto ostatni artykuł na temat zmiennych Linux, w którym zobaczymy zmienne zastępcze i zmienne zdefiniowane w Shell przed zamknięciem tego tematu.

Bash wykonuje zmienną podstawienie, zanim polecenie zostanie naprawdę wykonane. Shell Bash Linux wyszukuje wszystkie znak „$” przed wykonaniem polecenia i zastąp go wartością zmiennej. Proces zastępowania BASH jest wykonywany tylko raz. Co jeśli zagnieżdżą się zmienne?

Notatka: Zmieniamy zmienną zagnieżdżoną, zmienna zadeklarowana wewnątrz zmiennej. Zobaczmy powyższy scenariusz w poniższym przykładzie.

Deklaruj zmienną, która jest tylko odczytu i wykonywacza jak poniżej.

[e -mail chroniony]: ~ $ declare -rx linux_best_website = "www.Tecmint.com "

Sprawdź wartość przechowywanej zmiennej.

[e -mail chroniony]: ~ $ printf "%s" "$ linux_best_website" www.Tecmint.com

Teraz zadeklaruj kolejną zmienną, która ponownie jest tylko odczytu i wykonywacza.

[e -mail chroniony]: ~ $ declare -rx linux_website = "Linux_Best_Website"

Teraz jest sytuacja, zdefiniowaliśmy dwie zmienne.

„Linux_best_website”, którego wartość to „www.Tecmint.com ”
oraz „Linux_website”, którego wartość to „Linux_best_website”

Jaki byłby wynik, gdybyśmy uruchomić poniższe polecenie jednowierszowe?

[e -mail chroniony]: ~ $ printf "%s" "$ linux_website"

Powinien najpierw wymienić zmienną '$ Linux_website', z wartością „Linux_best_website" i wtedy "$ Linux_best_website”Jest znowu zmienną, której wartość to„www.Tecmint.com". Tak więc ostateczne wyjście uruchamiania poniższego polecenia powinno być.

[e -mail chroniony]: ~ $ printf "%s" "$ linux_website" www.Tecmint.com

Ale niestety, nie jest to sytuacja, wyniki, które otrzymujemy Linux_best_website.

Powód? tak! Bash zastąp wartość zmiennej tylko raz. A co z złożonymi skryptami i programami, w których musimy często zastępować zmienne, a także potrzebować zastąpienia zmiennej więcej niż raz?

Oto polecenie 'ocenia„który wykonuje dodatkowe prace nad zmienną podstawą więcej niż raz w skrypcie. Oto przykład, aby całość działała tak wyraźnie jak szkło.

Deklarować zmienną X, którego wartość jest 10.

[e -mail chroniony]: ~/Desktop $ deklaruj x = 10

Sprawdź wartość zmiennej X, Właśnie zdefiniowaliśmy.

[e -mail chroniony]: ~/Desktop $ echo $ yx x10

Deklarować zmienną y, którego wartość jest X.

[e -mail chroniony]: ~/Desktop $ oświadczenie y = x

Sprawdź wartość zmiennej y, Właśnie zdefiniowaliśmy.

[e -mail chroniony]: ~/Desktop $ echo $ y x

Oto problem GRZMOTNĄĆ Zmienne podstawienie, które nie wykonuje dodatkowej rundy zmiennej podstawienia. Używamy 'ocenia„polecenie to naprawić.

[e -mail chroniony]: ~/Desktop $ eval y = $ x

Teraz sprawdź wartość zmiennej 'y'.

[e -mail chroniony]: ~/Desktop $ echo $ y 10

Hurra! Problem został naprawiony i 'ocenia„Dowództwo wygrało wyścig :)

Nie wspominając, 'ocenia„Polecenie jest bardzo pomocne w dużych programach skryptów i jest bardzo przydatnym narzędziem.

Ostatnią, ale nie najmniej częścią tego postu jest predefiniowane zmienne Bash. NIE! Nie otrzymuj paniki, widząc tę ​​listę. Nigdy nie musisz pamiętać całej listy, zanim zaczniesz pisać skrypty, z wyjątkiem kilku. W ramach procesu uczenia się prezentujemy listę zmiennych Bash.

NIE. Zmienna bash WYNIK
1 auto_resume Ukończenie polecenia procesu dla zatrzymanych zadań.
2 GRZMOTNĄĆ Ścieżka skorupy.
3 Bash_env Pokazuje nazwę pliku profilu
4 Bash_version Pokazuje wersję Bash
5 Bash_versinfo Pokazuje szczegółowe informacje o wersji.
6 Bash_versinfo [0] Główny numer wersji (wydanie).
7 Bash_versinfo [1] Mniejszy numer wersji (wersja).
8 Bash_versinfo [2] Poziom łatki.
9 Bash_versinfo [3] Wersja kompilacji.
10 Bash_versinfo [4] Status wydania (na przykład beta1).
11 Bash_versinfo [5] Wartość Machtype .
12 CDPATH Lista katalogów oddzielonych okrężnicy.
13 Kolumny Liczba znaków na wiersz na standardowym wyjściu.
14 EUID Identyfikator użytkownika bieżącego użytkownika.
15 Fcedit Domyślny edytor tekstu dla polecenia FC.
16 FuncName Nazwa zabawy
17 Grupy Grupy, których użytkownik jest członkiem.
18 Histfile Plik zawierający historię poleceń.
19 DOM Nazwa twojego katalogu domowego.
20 LINIE Liczba poziomych linii na standardowym wyjściu.
21 POCZTA Nazwa pliku do sprawdzenia nadchodzącej poczty
22 Ostype Nazwa systemu operacyjnego.
23 Oldpwd Poprzedni katalog roboczy
24 PWD Obecny katalog roboczy
25 LOSOWY Drukuje liczbę losową
26 POWŁOKA Preferowana powłoka do użycia
27 FORMAT CZASU Format dla polecenia czasu.
28 UID Identyfikator bieżącego użytkownika

Istnieje ogromna lista predefiniowanej zmiennej Bash. Próbowaliśmy stworzyć listę najczęściej używanych.

To wszystko na teraz. Będę tu ponownie z kolejnym interesującym artykułem. Do tego czasu bądź na bieżąco i związany z Tecmint. Nie zapomnij przekazać nam cennej informacji zwrotnej w sekcji komentarzy poniżej.