Zmienne powłoki bash
Transkrypt
Zmienne powłoki bash
Zmienne powłoki bash PPID Identyfikator procesu macierzystego powłoki. Zmienna ta jest tylko do odczytu. PWD Bieżący katalog roboczy, ustawiony poleceniem cd. OLDPWD Poprzedni katalog roboczy ustawiony poleceniem cd. REPLY Ustawiona na wiersz wejścia odczytany wbudowanym poleceniem read jeśli nie podano żadnych jego argumentów. UID Interpretowane jako identyfikator bieżącego użytkownika, inicjowane przy uruchamianiu powłoki. Zmienna ta jest tylko do odczytu. EUID Interpretowane jako efektywny identyfikator bieżącego użytkownika, inicjowane przy uruchamianiu powłoki. Zmienna ta jest tylko do odczytu. GROUPS Zmienna tablicowa zawierająca listę grup, których członkiem jest bieżący użytkownik. Próby przypisywania jej wartości nie odnoszą efektu i są milcząco odrzucane. Jeżeli GROUPS jest unieważnione, to traci swe specjalne właściwości, nawet jeżeli jest następnie ponownie ustawione. BASH Interpretowane jako pełna nazwa pliku użyta do wywołania tego przebiegu bash . BASH VERSION Interpretowane jako łańcuch opisujący wersję uruchomionego bash. BASH VERSINFO Zmienna tablicowa tylko do odczytu, której elementy zawierają informacje o wersji uruchomionego bash. Wartości przypisane elementom tablicy są następujące: BASH VERSINFO[0] Główny numer wersji, wydanie (release). BASH VERSINFO[1] Poboczny numer wersji (version). BASH VERSINFO[2] Poziom łat (patch level). BASH VERSINFO[3] Wersja kompilatu (build version). BASH VERSINFO[4] Status wydania (np. beta1). BASH VERSINFO[5] Wartość MACHTYPE. SHL Inkrementowana każdorazowo, gdy uruchamiane jest kolejne wystąpienie bash. RANDOM Za każdym razem, gdy następuje odwołanie do tego parametru, generowana jest całkowita liczba losowa z zakresu od 0 do 32767. Sekwencję liczb losowych można zainicjować przypisując wartość do RANDOM. Jeżeli RANDOM jest unieważniona ... SECONDS Każdorazowo, gdy występuje odwołanie do tego parametru, zwracana jest liczba sekund, jakie upłynęły od wywołania powłoki. Jeżeli do SECONDS zostanie przypisana wartość, to wartość zwracana przez kolejne odwołania równa liczbie sekund od czasu przypisania plus przypisana wartość. Jeżeli SECONDS jest unieważnione ... LINENO Przy każdym odwołaniu do tego parametru powłoka zastępuje jego wartość liczbą dziesiętną reprezentującą aktualny kolejny numer wiersza (poczynając od 1) skryptu lub funkcji. Nie zapewnia się, by wartość ta miała znaczenie poza skryptem bądź funkcją. Jeśli LINENO jest unieważnione ... HISTCMD Licznik historii (indeks na liście historii poleceń) bieżącego polecenia. Jeżeli HISTCMD jest unieważnione, FUNCNAME Nazwa aktualnie wykonywanej funkcji powłoki. Zmienna ta istnieje tylko podczas wykonywania funkcji powłoki. Próby przypisywania jej wartości nie odnoszą efektu i są milcząco odrzucane. Jeżeli FUNCNAME jest unieważnione, ... ... DIRSTACK Zmienna tablicowa zawierająca bieżącą zawartość stosu katalogów. Katalogi pojawiają się na stosie w kolejności, w jakiej są wyświetlane przez wbudowane dirs. Przypisanie do elementów tej zmienej tablicowej może posłużyć do zmiany katalogów już występujących na stosie, ale do dodania i usunięcia katalogów muszą być użyte wbudowane pushd i popd. Przypisanie wartości tej zmiennej nie zmieni bieżącego katalogu. Jeśli DIRSTACK jest unieważnione ... PIPESTATUS Zmienna tablicowa zwierająca listę kodów zakończenia z procesów w ostatnio wykonywanym potoku pierwszoplanowym (który może zawierać pojedyncze polecenie). OPTARG Wartość ostatniego, będącego opcją, argumentu przetworzonego przez wbudowane polecenie getopts. OPTIND Numer (indeks) następnego argumentu, jaki ma zostać przetworzony przez wbudowane polecenie getopts. HOSTNAME Automatycznie ustawiane na nazwę aktualnego hosta. HOSTTYPE Automatycznie ustawiane na łańcuch unikalnie opisujący typ maszyny, na której jest wykonywany bash. Wartość domyślna zależy od systemu. OSTYPE Automatycznie ustawiane na łańcuch opisujący system operacyjny, w którym jest wykonywany bash. Wartość domyślna zależy od systemu. MACHTYPE Automatycznie ustawiane na łańcuch w pełni opisujący typ systemu, na którym jest wykonywany bash, w standadowym formacie GNU cpu-company-system. Wartość domyślna zależy od systemu. SHELLOPTS Lista, rozdzielonych dwukropkami, włączonych opcji powłoki. Każde słowo listy jest poprawnym argumentem opcji -o wbudowanego polecenia set. Opcje pojawiające się w SHELLOPTS to te, które są zgłaszane jako włączone (on) przez set -o. Jeśli zmienna ta istnieje w środowisku podczas uruchamiania bash, to każda z opcji powłoki występująca na tej liście zostanie włączona przed odczytem jakichkolwiek plików startowych. Jest to zmienna tylko do odczytu. COMP WORDS Zmienna tablicowa składająca się z pojedynczych słów z aktualnego wiersza poleceń. Zmienna ta jest dostępna wyłącznie w funkcjach powłoki wywołanych przez usługi programowalnego uzupełniania. COMP CWORD Indeks w ${COMP WORDS} słowa zawierającego bieżącą pozycję kursora. Zmienna ta jest dostępna wyłącznie w funkcjach powłoki wywołanych przez usługi programowalnego uzupełniania. COMP LINE Bieżący wiersz poleceń. Ta zmienna jest dostępna tylko w funkcjach powłoki i poleceniach zewnętrznych wywoływanych przez usługi programowalnego uzupełniania. COMP POINT Indeks bieżącej pozycji kursora względem początku bieżącego polecenia. Jeżeli kursor jest na końcu bieżącego polecenia, to wartość tej zmiennej jest równa ${#COMP LINE}. Ta zmienna jest dostępna tylko w funkcjach powłoki i poleceniach zewnętrznych wywoływanych przez usługi programowalnego uzupełniania. IFS Wewnętrzny Separator Pól (Internal Field Separator) używany do podziału na słowa po interpretacjach i dzielenia wierszy na słowa we wbudowanym poleceniu read. PATH Ścieżka wyszukiwania poleceń. jest to lista rozdzielanych dwukropkami katalogów, w których powłoka szuka poleceń. HOME Katalog domowy bieżącego użytkownika; domyślny argument wbudowanego polecenia cp. Wartość tej zmiennej wykorzystywana jest też przy wykonywaniu interpretacji tyld. CDPATH Ścieżka wyszukiwania dla polecenia cd. Jest to lista rozdzielonych dwukropkami katalogów, w których powłoka szuka katalogów docelowych podanych przez polecenie cd. BASH ENV Jeżeli parametr ten jest ustawiony podczas wykonywania przez bash skryptu, to jego wartość interpretowana jest jako nazwa pliku zawierającego polecenia do zainicjowania powłoki, jak w ~ /.bashrc. Wartość BASH ENV podlega interpretacji parametrów, podstawianiu wyników poleceń i interpretacjom wyrażeń arytmetycznych przed interpretacją jej jako nazwy pliku. Zmienna PATH nie jest używana do znalezienia pliku o powstałej w ten sposób nazwie. MAIL Jeżeli parametrowi temu jest przypisana nazwa pliku, a nie jest ustawiona zmienna MAILPATH, to bash informuje użytkownika o nadejściu poczty do podanego pliku. MAILCHECK Określa jak często (w sekundach) bash sprawdza pocztę. Domyślnie jest to 60 sekund. Gdy nadchodzi pora sprawdzenia poczty, powłoka wykonuje to przed wyświetleniem głównej zachęty. Jeśli zmienna ta nie jest ustawiona, to powłoka wyłącza sprawdzanie poczty. MAILPATH Lista rozdzielonych dwukropkami nazw plików, w jakich ma być sprawdzana poczta. Można podać komunikat, jaki ma zostać wyświetlony, gdy do danego pliku przybędzie wiadomość pocztowa, przez oddzielenie nazwy pliku od komunikatu znakiem ’ ?’. Użyte w tekście komunikatu, $ interpretowane jest jako nazwa bieżącego pliku pocztowego. Przykład: MAILPATH= ’/var/mail/bfox?"You have mail”:~/shell-mail?"$ has mail!”’ Bash zapewnia tej zmiennej wartość domyślną, ale położenie plików pocztowych użytkownika, jakim się posługuje zależy od systemu (e.g., /var/mail/$USER). PS1 Wartość tego parametru jest interpretowana i używana jako główny łańcuch zachęty. Jego wartością domyślną jest ”\s-\v$". PS2 Wartość tego parametru jest interpretowana jak PS1 i używana jako wtórny (secondary) łańcuch zachęty. Domyślnie jest to ">". PS3 Wartość tego parametru służy jako zachęta w poleceniu select (zobacz powyżej GRAMATYKA POWŁOKI). PS4 Wartość tego parametru interpretowana jest jak PS1 i drukowana przed każdym poleceniem wyświetlanym przez bash podczas śledzenia wykonywania. Pierwszy znak PS4, w razie potrzeby, powtarzany jest wielokrotnie, by wskazać wiele pozionów zagnieżdżenia. Domyślnie jest to "+". TIMEFORMAT Wartość tego parametru służy jako łańcuch formatu określającego, jak powinna być wyświetlana informacja o czasach dla potoków poprzedzonych słowem zastrzeżonym time. ... HISTSIZE Liczba poleceń do zapamiętania w historii poleceń. Wartością domyślną jest 500. HISTFILE Nazwa pliku, w którym zachowywana jest historia poleceń. Wartością domyślną jest ~ /.bash history. Jeśli ustawienie tej zmiennej zostanie skasowane, to historia poleceń nie będzie zachowana po zakończeniu pracy powłoki interaktywnej. HISTFILESIZE Maksymalna liczba wierszy zawartych w pliku historii. Podczas przypisywania wartości tej zmiennej, jeżeli jest to niezbędne, plik historii jest obcinany tak, by nie zawierał więcej wierszy. Domyślną wartością jest 500. Plik historii jest także obcinany do tego rozmiaru po zapisaniu go w czasie kończenia pracy przez powłokę interaktywną. OPTERR Jeżeli ustawiono na wartość 1, bash wyświetla komunikaty o błędach generowanych przez wbudowane polecenie getopts. OPTERR inicjowane jest na 1 każdorazowo, gdy wywoływana jest powłoka lub wykonywany jest skrypt powłoki. LANG Służy do wyznaczania kategorii locale dla wszystkich kategorii nie wyszczególnionych przez zmienne rozpoczynające się od znaków LC . LC ALL Zmienna ta unieważnia wartość LANG i wszelkich innych zmiennych LC określających kategorie locale. LC COLLATE Ta zmienna wyznacza kolejność (collation order) używaną przy sortowaniu wyników rozwijania nazw plików, decyduje też o zachowaniu wielu wyrażeń, klas równoważnych i sekwencje sortowania (collating sequences) w rozwijaniu nazw plików i dopasowywaniu wzorców. LC CTYPE Ta zmienna decyduje o interpretacji znaków i zachowaniu się klas znaków wewnątrz rozwijania nazw plików i dopasowywania wzorców. LC MESSAGES Ta zmienna decyduje o ustawieniu locale używanym do tłumaczenia ujętych w cudzysłowy łańcuchów poprzedzonych znakiem $. LC NUMERIC Ta zmienna określa kategorię locale używaną do formatowania liczb. PROMPT COMMAND Jeżeli jest ustawiona, to jej wartość jest wykonywana jwko polecenie przed każdym wysłaniem zachęty głównej. IGNOREEOF Steruje działaniem powłoki interaktywnej przy otrzymaniu przez nią znaku EOF jako jedynego znaku wejścia. Jeżeli jest ustawiona, to jej wartość jest liczbą kolejnych znaków EOF jakie muszą być wpisane jako pierwsze znaki wiersza wprowadzania przed zakończeniem pracy przez bash. Jeśli zmienna ta istnieje, ale nie zawiera wartości numerycznej lub nie ma wartości, to wartością domyślną jest 10. Jeżeli nie istnieje, to EOF wskazuje powłoce koniec wprowadzanych danych. TMOUT Jeśli ustawione na wartość większą od zera, to wartość ta jest interpretowana jako liczba sekund określającą czas, przez jaki powłoka ma czekać na wprowadzenie danych po wyświetleniu zachęty. Bash kończy pracę po odczekaniu tego czasu jeśli dane nie pojawiły się. FCEDIT Domyślny edytor dla wbudowanego polecenia fc. FIGNORE Lista rozdzielonych dwukropkami przyrostków, jakie mają być ignorowane podczas uzupełniania nazw plików . Nazwa pliku o przyrostku pasującym do jednej z pozycji FIGNORE wyłączana jest z listy dopasowanych nazw plików. Przykładową wartością jest ".o:~". GLOBIGNORE Lista rozdzielonych dwukropkami wzorców definiujących zestaw nazw plików, jakie mają być ignorowane podczas rozwijania nazw plików. Jeżeli plik pasujący do wzorca rozwijającego nazwę ścieżkową pasuje również do któregoś z wzorców w GLOBIGNORE, to jest on usuwany z listy dopasowanych. INPUTRC nazwa pliku startowego dla readline, unieważniająca domyślną ~/.inputrc . HISTCONTROL Jeżeli posiada wartość ignorespace, to wiersze rozpoczynające się od znaku spacji nie są wprowadzane do listy historii. Jeśli posiada wartość ignoredups, to wiersze pasujące do ostatniego wiersza historii nie są wprowadzane. Wartość ignoreboth łączy obie te możliwości. Jeśli zmienna ta nie jest zdefiniowana lub ma wartość inną od powyższych, to wszystkie wiersze przeczytane przez analizator składni zachowywane są w liście historii, stosownie do wartości HISTIGNORE. Funkcja tej zmiennej jest zastąpiona przez HISTIGNORE. Drugi i kolejne wiersze złożonego polecenia wielowierszowego nie są sprawdzane i są dodawane do historii bez względu na wartość HISTIGNORE Lista rozdzielonych dwukropkami wzorców służących do decydowania, jakie wiersze poleceń powinny być zachowane w liście historii. Każdy z wzorców zakotwiczony jest na początku wiersza i musi pasować do całego wiersza (nie jest dodawane żadne niejawne ‘*’). Każdy z wzorców sprawdzany jest z bieżącym wierszem po wykonaniu kontroli określonych przez HISTCONTROL. Oprócz zwykłych znaków dopasowywania wzorców używanych przez powłokę, ‘&’ dopasowuje poprzedni wiersz historii. Literał ‘&’ można uzyskać poprzedzając go odwrotnym ukośnikiem; odwrotny ukośnik jest usuwany przed próbą dopasowania. Druga i kolejne wiersze złożonego polecenia wielowierszowego nie są sprawdzane i są dodawane do historii bez względu na wartość HISTIGNORE. histchars Dwa lub trzy znaki sterujące interpretacją historii i podziałem na leksemy (zobacz poniżej INTERPRETACJA HISTORII). Pierwszy znak jest znakiem interpretacjihistorii, sygnalizującym początek interpretacji historii, zwykle ‘!’. Drugi znak jest znakiem szybkiego podstawiania , (”quick substitution”), służącym jako skrót do powtórnego uruchamiania poprzednio wprowadzonego polecenia, podstawiającym w poleceniu jeden łańcuch za inny. Domyślnym znakiem szybkiego podstawiania jest ‘ˆ’. Opcjonalny, trzeci znak jest znakiem wskazującym, że pozostała część wiersza, w którym występuje on jako pierwszy znak słowa, jest komentarzem. Zwykle znakiem tym jest ‘#’. Znak komentarza historii powoduje, że dla pozostałych słów wiersza podstawianie historii jest pomijane. Niekoniecznie powoduje to traktowanie reszty wiersza jako komentarza przez analizator składni powłoki. HOSTFILE Zawiera nazwę pliku o tym samym formacie co /etc/hosts który pownien być czytany, gdy powłoka potrzebuje uzupełnić nazwę hosta. Listę możliwych uzupełnień można zmieniać podczas pracy powłoki. Następnym razem, gdy wykonywana jest próba uzupełnienia nazwy hosta bash dodaje zawartość nowego pliku do już istniejącej listy. Jeżeli HOSTFILE jest ustawione, ale nie posiada wartości, bash usiłuje uzyskać listę możliwych uzupełnień nazw hostów czytając /etc/hosts Gdy HOSTFILE jest unieważniane, lista hostów jest czyszczona. auto resume Zmienna ta steruje sposobem interakcji powłoki z użytkownikiem i sposobem kontroli zadań. Jeżeli jest ustawiona, to jednowyrazowe polecenia proste bez przekierowań traktowane są jako aspirujące do wznowienia istniejącego zatrzymanego zadania. Nie pozwala się na żadną dwuznaczność; jeśli jest więcej niż jedno zadanie rozpoczynające się od wpisanego łańcucha, wybierane jest zadanie, do którego ostatnio sięgano. Nazwa zatrzymanego zadania, w tym kontekście, jest wierszem poleceń użytym do jego uruchomienia. Jeśli posiada wartość exact, to podany łańcuch musi pasować dokładnie do nazwy zatrzymanego zadania; Jeśli jest ustawione na substring, to podany łańcuch powinien pasować do podłańcucha nazwy zatrzymanego zadania. Wartość substring zapewnia funkcjonalność analogiczną do identyfikatora zadania %?. Jeśli ustawiono inną wartość, to podany łańcuch musi być przedrostkiem nazwy zatrzymanego zadania; zapewnia to funkcjonalność analogiczną do identyfikatora zadania %. COMPREPLY Zmienna tablicowa, z której bash czyta możliwe uzupełnienia tworzone przez funkcję powłoki wywołaną przez usługę programowalnego uzupełniania (zobacz poniżej Programowalne uzupełnianie).