Zmienna zagnieżdżona i predefiniowane zmienne BASH w Linuksie - Część 11
- 1071
- 120
- Klaudia Woś
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 skonstrukcjiOto 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.
- « Podejście obiektowe programowania i enkapsulacji Java - Część 5
- Naucz się przydatnych wskazówek i sztuczek „VI/VIM”, aby poprawić swoje umiejętności - część 1 »