BASH(1) General Commands Manual BASH(1) NAZWA bash - GNU Bourne-Again SHell SKLADNIA bash [opcje] [lancuch_polecenia | plik] PRAWA AUTORSKIE Bash is Copyright (C) 1989-2022 by the Free Software Foundation, Inc. OPIS Bash jest zgodnym z sh interpreterem jezyka polecen, wykonujacym polecenia ze standardowego wejscia badz z pliku. Wlaczono don rowniez przydatne cechy zaczerpniete z powloki Korna i powloki C (ksh i csh). Bash w zamierzeniu jest implementacja zgodna z POSIX-owa specyfikacja powlok i narzedzi -- IEEE POSIX Shell and Utilities specification (IEEE Standard 1003.1). Bash moze byc skonfigurowany w ten sposob, aby byl domyslnie zgodny z norma POSIX. OPCJE Oprocz jednoznakowych opcji powloki udokumentowanych w opisie wbudowanego polecenia set, w tym -o, polecenia wbudowane moga byc uzyte jako opcje przy wywolaniu powloki. Dodatkowo, bash przy wywolaniu interpretuje ponizsze opcje: -c Jesli wystepuje opcja -c, to polecenia odczytywane sa z pierwszego argumentu, niebedacego opcja lancucha_polecenia. Jezeli po lancuchu_polecenia istnieja argumenty, to pierwszy jest przypisywany do $0 a pozostale sa przypisywane do argumentow pozycyjnych. Przypisanie do $0 ustawia nazwe powloki, co jest wykorzystywane przy ostrzezeniach i komunikatach z bledami. -i Jezeli wystepuje opcja -i, to powloka jest interaktywna. -l Program bash bedzie dzialal jakby zostal wywolany jako powloka zgloszeniowa (patrz nizej WYWOLANIE). -r Jezeli wystepuje opcja -r, to powloka staje sie powloka okrojona (restricted). Patrz ponizej POWLOKA OKROJONA. -s Jesli wystepuje opcja -s lub po przetworzeniu opcji nie pozostaja zadne argumenty, to polecenia odczytywane sa ze standardowego wejscia. Opcja ta umozliwia na ustawienie parametrow pozycyjnych podczas wywolania powloki interaktywnej lub przy odczytywaniu wejscia z potoku. -D Na standardowym wyjsciu wypisywana jest lista lancuchow cytowanych cudzyslowem poprzedzonych znakiem $. Sa to lancuchy bedace przedmiotem tlumaczenia jezyka, gdy biezacym ustawieniem regionalnym (locale) nie jest C ani POSIX. Implikuje to opcje -n; nie zostana wykonane zadne polecenia. [-+]O [opcja_shopt] opcja_shopt jest jedna z opcji powloki akceptowanych przez polecenie wbudowane shopt (zobacz WBUDOWANE POLECENIA POWLOKI ponizej). Jesli wystepuje opcja_shopt, to -O nadaje wartosc tej opcji, zas +O uniewaznia ja. Jezeli nie podano opcji_shopt, to na standardowym wyjsciu wypisywane sa nazwy i wartosci opcji powloki akceptowanych przez shopt. Jesli opcja wywolania jest +O, tworzone wyjscie jest formatowane w taki sposob, by mozna bylo wykorzystac je jako wejscie. -- Zapis -- sygnalizuje koniec opcji i wylacza dalsze ich przetwarzanie. Argumenty wystepujace po -- traktowane sa jako nazwy plikow i argumenty. Argument - jest rownowaznikiem --. Bash interpretuje takze wiele opcji wieloznakowych. Jesli maja zostac rozpoznane, opcje te musza pojawic sie w wierszu polecen przed opcjami jednoznakowymi, --debugger Ustawia profil debuggera do wykonania, przed uruchomieniem powloki. Wlacza rozszerzony tryb debugowania (patrz opis opcji extdebug do wbudowanego polecenia shopt ponizej). --dump-po-strings Rownowazne -D, ale wyjscie jest w formacie pliku GNU gettext po (portable object). --dump-strings Rownowaznik -D. --help Wyswietla na standardowym wyjsciu komunikat o uzytkowaniu i pomyslnie konczy prace. --init-file plik --rcfile plik Wykonuje polecenia z podanego pliku zamiast ze standardowego osobistego pliku inicjujacego ~/.bashrc, jesli powloka jest interaktywna. Zobacz WYWOLANIE ponizej. --login Rownowazne -l. --noediting Nie uzywa biblioteki GNU readline do odczytu wierszy polecen w trybie interaktywnym. --noprofile Nie odczytuje ani ogolnosystemowego pliku startowego /etc/profile ani zadnego z osobistych plikow inicjujacych ~/.bash_profile, ~/.bash_login czy ~/.profile. Domyslnie, bash czyta te pliki gdy jest wywolany jako powloka zgloszeniowa (zobacz WYWOLANIE ponizej). --norc Nie odczytuje i nie wykonuje osobistego pliku inicjujacego ~/.bashrc jesli powloka jest interaktywna. Opcja ta jest domyslnie wlaczona, jezeli powloke wywolano jako sh. --posix Zmienia zachowanie bash tam, gdzie domyslne dzialanie rozni sie od standardu POSIX, tak by spelniac standard (tryb posix). Wiecej informacji o tym, jak tryb posix wplywa na zachowanie powloki mozna znalezc w dokumencie do ktorego odsyla ZOBACZ TAKZE. --restricted Powloka staje sie okrojona (zobacz POWLOKA OKROJONA ponizej). --verbose Rownowaznik opcji -v. --version Pokazuje na standardowym wyjsciu informacje o wersji tego egzemplarza bash i pomyslnie konczy prace. ARGUMENTY Jesli po przetworzeniu opcji pozostaja jakies argumenty, a nie podano ani opcji -c ani -s, to zaklada sie, ze pierwszy argument jest nazwa pliku zawierajacego polecenia powloki. Jezeli bash zostal wywolany w taki sposob, to $0 przypisywana jest nazwa pliku z poleceniami, a parametrom pozycyjnym pozostale argumenty. Bash odczytuje i wykonuje polecenia z tego pliku, a nastepnie konczy prace. Kod zakonczenia basha jest wowczas kodem zakonczenia ostatniego wykonanego polecenia skryptu. Jesli nie wykonano zadnego polecenia, to kod zakonczenia wynosi 0. Najpierw wykonywana jest proba otworzenia pliku w biezacym katalogu, a nastepnie, jesli sie ona nie powiedzie, powloka przeszukuje katalogi w PATH szukajac skryptu. WYWOLANIE Powloka zgloszeniowa (login shell) to taka, w ktorej pierwszym znakiem zerowego argumentu jest -, lub taka, ktora uruchomiono z opcja --login. Powloka interaktywna to taka, ktora uruchomiono bez argumentow innych niz opcje (chyba, ze podano -s) i bez opcji -c; zarowno jej standardowe wejscie jak i wyjscie powiazane jest z terminalami (tak jak okreslila to funkcja isatty(3)), albo taka, ktora uruchomiono z opcja -i. Jesli bash jest interaktywny, to ustawiane jest PS1 zas $- zawiera i; pozwala to skryptowi powloki lub plikowi startowemu na sprawdzanie tego stanu. Ponizsze akapity opisuja, jak bash wykonuje swoje pliki startowe. Jesli ktorys z tych plikow istnieje, ale nie moze byc odczytany, to bash zglasza blad. Tyldy (~) w nazwach plikow interpretowane sa wedlug regul opisanych ponizej w czesci Interpretacja tyld sekcji INTERPRETACJA. Gdy bash wywolywany jest jako powloka zgloszeniowa lub jako powloka nie-interaktywna z opcja --login, w pierwszej kolejnosci czyta i wykonuje polecenia z pliku /etc/profile, jesli takowy istnieje. Po odczytaniu tego pliku, szuka ~/.bash_profile, ~/.bash_login i ~/.profile, w tej kolejnosci, po czym odczytuje i wykonuje polecenia z pierwszego istniejacego i dajacego sie odczytac. Mozna posluzyc sie opcja --noprofile podczas uruchamiania powloki, by zakazac takiego zachowania. Podczas konczenia interaktywnej powloki zgloszeniowej lub gdy nieinteraktywna powloka zgloszeniowa wykonuje wbudowane polecenie exit, bash czyta i wykonuje polecenia z pliku ~/.bash_logout, jesli taki istnieje. Jezeli uruchamiana jest powloka interaktywna nie bedaca powloka zgloszeniowa, bash czyta i wykonuje polecenia z ~/.bashrc, jesli taki plik istnieje. Moze to byc zakazane za pomoca opcji --norc. Opcja --rcfile plik wymusi odczyt i wykonanie polecen z pliku zamiast z ~/.bashrc. Jesli bash startuje w trybie nie-interaktywnym, na przyklad w celu uruchomienia skryptu powloki, to szuka w srodowisku zmiennej BASH_ENV, interpretuje jej wartosc, jesli ja znalazl, i uzywa otrzymanej wartosci jako nazwy pliku do odczytania i wykonania. Bash zachowuje sie tak, jakby byly wykonane nastepujace polecenia: if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi ale do szukania nazwy pliku nie jest uzywana wartosc zmiennej PATH. Jezeli bash wywolano pod nazwa sh, to probuje on nasladowac zachowanie startowe historycznych wersji sh tak scisle jak to jest mozliwe, przy rownoczesnym spelnianiu standardu POSIX. Wywolany jako powloka interaktywna lub powloka nie-interaktywna z opcja --login, usiluje na poczatku odczytac i wykonac polecenia z /etc/profile i ~/.profile, w tej kolejnosci. W celu zakazania tego zachowania mozna uzyc opcji --noprofile. Wywolany jako powloka interaktywna pod nazwa sh, bash poszukuje zmiennej ENV, interpretuje jej wartosc, jesli jest zdefiniowana, i posluguje sie otrzymana wartoscia jako nazwa pliku, ktory ma byc odczytany i wykonany. Poniewaz powloka wywolana jako sh nie usiluje czytac ani wykonywac polecen z jakichkolwiek innych plikow startowych, opcja --rcfile nie ma zadnych skutkow. Powloka nie-interaktywna wywolana pod nazwa sh nie probuje czytac zadnych plikow startowych. Wywolany jako sh, bash wchodzi w tryb posix po odczycie plikow startowych. Gdy bash uruchomiony jest w trybie posix, jak z opcja --posix wiersza polecen, kieruje sie standardem POSIX dla plikow startowych. W trybie tym, powloka interaktywna interpretuje zmienna ENV a polecenia odczytywane i wykonywane sa z pliku, ktorego nazwa jest zinterpretowana wartosc. Nie sa czytane inne pliki startowe. Bash attempts to determine when it is being run with its standard input connected to a network connection, as when executed by the historical remote shell daemon, usually rshd, or the secure shell daemon sshd. If bash determines it is being run non-interactively in this fashion, it reads and executes commands from ~/.bashrc, if that file exists and is readable. It will not do this if invoked as sh. The --norc option may be used to inhibit this behavior, and the --rcfile option may be used to force another file to be read, but neither rshd nor sshd generally invoke the shell with those options or allow them to be specified. Jesli powloka zostala uruchomiona z efektywnym id uzytkownika (grupy) roznym od id rzeczywistego, a nie podano opcji -p, to nie sa odczytywane zadne pliki startowe, funkcje powloki nie sa dziedziczone ze srodowiska, zmienne SHELLOPTSP, BASHOPTS, CDPATH, i GLOBIGNORE, jesli jest takie wystepuja w srodowisku, sa ignorowane a efektywny identyfikator uzytkownika jest ustawiany na jego identyfikator rzeczywisty. Jesli przy wywolaniu podano opcje -p, to zachowanie startowe jest takie samo, ale nie jest resetowany efektywny id uzytkownika. DEFINICJE W pozostalej czesci tego dokumentu uzywane sa ponizsze definicje. odstep Spacja lub znak tabulacji. slowo Sekwencja znakow uwazana przez powloke za pojedyncza jednostke. Znana tez jako token. nazwa Jest to slowo skladajace sie wylacznie ze znakow alfanumerycznych i znakow podkreslenia, i rozpoczynajace sie znakiem alfabetycznym lub podkresleniem. Wspominane rowniez jako identyfikator. metaznak Znak, ktory, gdy nie jest cytowany, oddziela slowa. Jeden z ponizszych: | & ; ( ) < > space tab newline operator sterujacy token pelniacy funkcje sterujaca. Jest to jeden z ponizszych symboli: || & && ; ;; ;& ;;& ( ) | |& SLOWA ZASTRZEZONE Reserved words are words that have a special meaning to the shell. The following words are recognized as reserved when unquoted and either the first word of a command (see SHELL GRAMMAR below), the third word of a case or select command (only in is valid), or the third word of a for command (only in and do are valid): ! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]] GRAMATYKA POWLOKI Niniejszy rozdzial opisuje skladnie roznych postaci polecen powloki. Polecenia proste Polecenie proste jest sekwencja opcjonalnych przypisan zmiennych, po ktorej nastepuja rozdzielane przez odstep slowa i przekierowania, a zakonczona operatorem sterujacym. Pierwsze slowo okresla polecenie, jakie ma zostac wykonane i jest przekazywane jako argument numer zero. Pozostale slowa sa przekazywane jako argumenty wywolywanego polecenia. Wartoscia zwracana polecenia prostego jest jego kod zakonczenia lub 128+n jezeli polecenie przerwane jest sygnalem n. Potoki Potok jest sekwencja jednego lub wiecej polecen rozdzielonych jednym z operatorow kontrolnych | lub |&. Formatem potoku jest: [time [-p]] [ ! ] polecenie1 [ [|||&] polecenie2 ... ] The standard output of command1 is connected via a pipe to the standard input of command2. This connection is performed before any redirections specified by the command1(see REDIRECTION below). If |& is used, command1's standard error, in addition to its standard output, is connected to command2's standard input through the pipe; it is shorthand for 2>&1 |. This implicit redirection of the standard error to the standard output is performed after any redirections specified by command1. Zwracanym kodem zakonczenia potoku jest kod zakonczenia ostatniego polecenia, chyba ze wlaczono opcje pipefail. W takim przypadku kod zakonczenia potoku jest wartoscia ostatniego (po prawej) polecenia, ktore zakonczylo sie kodem niezerowym lub zero, jesli wszystkie polecenia zakonczyly sie powodzeniem. Jezeli potok poprzedza zastrzezone slowo !, to kod zakonczenia takiego potoku jest negacja (NOT) kodu zakonczenia ostatniego polecenia, zgodnie z powyzszym opisem. Powloka oczekuje na zakonczenie (terminate) wszystkich polecen w potoku przed zwroceniem wartosci. Jezeli potok jest poprzedzony slowem zastrzezonym time, to po jego zakonczeniu podawany jest czas wykonywania, jak rowniez czas uzytkownika i czas systemu zuzyty na wykonanie. Opcja -p zmienia format tworzonych wynikow na okreslony przez POSIX. Jesli powloka znajduje sie w trybie posix, to nie rozpoznaje time jako slowa zastrzezonego, jesli kolejny token rozpoczyna sie znakiem "-". Do sformatowania lancucha okreslajacego, jak powinna byc wyswietlana informacja o czasach, mozna ustawic zmienna TIMEFORMAT; zobacz opis TIMEFORMAT w Zmienne powloki ponizej. Jesli powloka znajduje sie w trybie posix, to po time moze wystapic znak nowego wiersza. W takim przypadku, powloka wyswietla calkowity czas uzytkownika i systemu, skonsumowany przez powloke i jej potomkow. Zmienna TIMEFORMAT mozna okreslic format informacji o czasie. Each command in a multi-command pipeline, where pipes are created, is executed in a subshell, which is a separate process. See COMMAND EXECUTION ENVIRONMENT for a description of subshells and a subshell environment. If the lastpipe option is enabled using the shopt builtin (see the description of shopt below), the last element of a pipeline may be run by the shell process when job control is not active. Listy Lista jest potokiem lub sekwencja kilku potokow rozdzielonych jednym z operatorow ;, &, && lub ||, i opcjonalnie zakonczona jednym ze znakow ;, & lub . Sposrod tych operatorow listowych, && i || maja ten sam priorytet, nastepujace po nich ; i &, rowniez maja rowny miedzy soba priorytet. W zastepstwie srednika, w liscie moze pojawic sie sekwencja jednego lub wiecej znakow nowego wiersza. If a command is terminated by the control operator &, the shell executes the command in the background in a subshell. The shell does not wait for the command to finish, and the return status is 0. These are referred to as asynchronous commands. Commands separated by a ; are executed sequentially; the shell waits for each command to terminate in turn. The return status is the exit status of the last command executed. Listy AND i OR sa sekwencjami jednego lub wiecej potokow oddzielonych odpowiednio operatorami sterujacymi && i ||. Listy AND i OR sa wykonywane z pozostawiona lacznoscia. Lista AND ma postac polecenie1 && polecenie2 polecenie2 wykonywane jest wtedy, i tylko wtedy, gdy polecenie1 zwraca zerowy kod zakonczenia (sukces). Lista OR ma postac polecenie1 || polecenie2 polecenie2 jest wykonywane wtedy, i tylko wtedy, gdy polecenie1 zwraca niezerowy kod zakonczenia. Kod zwracany przez listy AND i OR jest kodem zakonczenia ostatniego wykonanego polecenia listy. Polecenia zlozone Polecenie zlozone jest jednym z ponizszych. W wiekszosci przypadkow lista w opisie polecenia moze byc oddzielona od reszty polecenie jedna lub wiecej znakami nowego wiersza, a po niej zamiast srednika moze wystapic znak nowego wiersza. (lista) list is executed in a subshell (see COMMAND EXECUTION ENVIRONMENT below for a description of a subshell environment). Variable assignments and builtin commands that affect the shell's environment do not remain in effect after the command completes. The return status is the exit status of list. { lista; } Lista jest po prostu wykonywana w biezacym srodowisku powloki. Lista musi byc zakonczona znakiem nowej linii lub srednika. Nazywane jest to poleceniem grupowania. Zwracanym kodem jest kod zakonczenia listy. Nalezy pamietac, ze w przeciwienstwie do metaznakow ( i ), { i } sa slowami zastrzezonymi i aby zostaly rozpoznane musza sie pojawic tam, gdzie dozwolone jest uzycie slow zastrzezonych. Poniewaz nie powoduja podzialu na slowa, musza byc oddzielone od listy za pomoca bialego znaku lub innego metaznaku powloki. ((wyrazenie)) The expression is evaluated according to the rules described below under ARITHMETIC EVALUATION. If the value of the expression is non-zero, the return status is 0; otherwise the return status is 1. The expression undergoes the same expansions as if it were within double quotes, but double quote characters in expression are not treated specially and are removed. [[ wyrazenie ]] Return a status of 0 or 1 depending on the evaluation of the conditional expression expression. Expressions are composed of the primaries described below under CONDITIONAL EXPRESSIONS. The words between the [[ and ]] do not undergo word splitting and pathname expansion. The shell performs tilde expansion, parameter and variable expansion, arithmetic expansion, command substitution, process substitution, and quote removal on those words (the expansions that would occur if the words were enclosed in double quotes). Conditional operators such as -f must be unquoted to be recognized as primaries. Operatory < i >, gdy sa uzywane z [[, sortuja zgodnie z porzadkiem leksykograficznym, uzywajac biezacego ustawienia locale. Jesli uzywane sa operatory == i !=, to lancuch po prawej stronie operatora jest wzorcem i jest dopasowany zgodnie z opisanymi ponizej regulami Dopasowania wzorca, jakby wlaczono opcje powloki extglob. Operator = jest rownowazny ==. Jesli wlaczono opcje powloki nocasematch, to przy dopasowaniu ignorowana jest wielkosc liter. Zwracana wartoscia jest 0 gdy lancuch pasuje (==) lub nie pasuje (!=) i 1 w przeciwnym wypadku. Kazda czesc wzorca moze byc cytowana, aby wymusic jej dopasowanie jako lancuch. An additional binary operator, =~, is available, with the same precedence as == and !=. When it is used, the string to the right of the operator is considered a POSIX extended regular expression and matched accordingly (using the POSIX regcomp and regexec interfaces usually described in regex(3)). The return value is 0 if the string matches the pattern, and 1 otherwise. If the regular expression is syntactically incorrect, the conditional expression's return value is 2. If the nocasematch shell option is enabled, the match is performed without regard to the case of alphabetic characters. If any part of the pattern is quoted, the quoted portion is matched literally. This means every character in the quoted portion matches itself, instead of having any special pattern matching meaning. If the pattern is stored in a shell variable, quoting the variable expansion forces the entire pattern to be matched literally. Treat bracket expressions in regular expressions carefully, since normal quoting and pattern characters lose their meanings between brackets. The pattern will match if it matches any part of the string. Anchor the pattern using the ^ and $ regular expression operators to force it to match the entire string. The array variable BASH_REMATCH records which parts of the string matched the pattern. The element of BASH_REMATCH with index 0 contains the portion of the string matching the entire regular expression. Substrings matched by parenthesized subexpressions within the regular expression are saved in the remaining BASH_REMATCH indices. The element of BASH_REMATCH with index n is the portion of the string matching the nth parenthesized subexpression. Bash sets BASH_REMATCH in the global scope; declaring it as a local variable will lead to unexpected results. Wyrazenia mozna laczyc przy pomocy nastepujacych operatorow, wymienionych w kolejnosci malejacego priorytetu: ( wyrazenie ) Zwraca wartosc wyrazenia. Moze sluzyc do uniewaznienia zwyklej kolejnosci operatorow. ! wyrazenie Prawda jezeli wyrazenie jest falszywe. wyrazenie1 && wyrazenie2 Prawda jesli zarowno wyrazenie1 jak i wyrazenie2 sa prawdziwe. wyrazenie1 || wyrazenie2 Prawda jesli choc jedno sposrod wyrazenie1 lub wyrazenie2 jest prawdziwe. Operatory && i || nie wykonuja wyrazenia2 jezeli wartosc wyrazenia1 wystarcza do okreslenia wartosci, jaka zostanie zwrocona przez cale wyrazenie warunkowe. for nazwa [ [ in [ slowo ... ] ] ; ] do lista ; done Interpretowane sa slowa nastepujace po in, tworzac liste elementow. Zmiennej nazwa nadawana jest kolejno wartosc kazdego elementu tej listy i kazdorazowo wykonywana jest lista polecen. Jezeli pominieto in slowo, to polecenie for wykonuje liste po jednym razie dla kazdego ustawionego parametru pozycyjnego (zobacz PARAMETRY ponizej). Zwracanym kodem jest kod zakonczenia ostatniego wykonanego polecenia. Jesli interpretacja elementow nastepujacych po in daje w wyniku pusta liste, to nie sa wykonywane zadne polecenia i zwracany jest kod 0. for (( wyr1 ; wyr2 ; wyr3 )) ; do lista ; done Na poczatku obliczane jest wyrazenie arytmetyczne wyr1, zgodnie z zasadami opisanymi ponizej w OBLICZANIE WYRAZEN ARYTMETYCZNYCH. Nastepnie wielokrotnie obliczane jest wyr2, az do osiagniecia przez nie wartosci zero. Kazdorazowo gdy obliczone wyr2 jest niezerowe, wykonywana jest lista i obliczane jest wyrazenie arytmetyczne wyr3. Jesli pominieto ktores z wyrazen, to zachowuje sie ono tak, jakby przyjmowalo wartosc 1. Zwracanym kodem jest kod zakonczenia ostatniego wykonanego polecenia listy, lub falsz jesli ktores z wyrazen jest niepoprawne. select nazwa [ in slowo ] ; do lista ; done The list of words following in is expanded, generating a list of items, and the set of expanded words is printed on the standard error, each preceded by a number. If the in word is omitted, the positional parameters are printed (see PARAMETERS below). select then displays the PS3 prompt and reads a line from the standard input. If the line consists of a number corresponding to one of the displayed words, then the value of name is set to that word. If the line is empty, the words and prompt are displayed again. If EOF is read, the select command completes and returns 1. Any other value read causes name to be set to null. The line read is saved in the variable REPLY. The list is executed after each selection until a break command is executed. The exit status of select is the exit status of the last command executed in list, or zero if no commands were executed. case slowo in [ [(] wzorzec [ | wzorzec ] ... ) lista ;; ] ... esac A case command first expands word, and tries to match it against each pattern in turn, using the matching rules described under Pattern Matching below. The word is expanded using tilde expansion, parameter and variable expansion, arithmetic expansion, command substitution, process substitution and quote removal. Each pattern examined is expanded using tilde expansion, parameter and variable expansion, arithmetic expansion, command substitution, process substitution, and quote removal. If the nocasematch shell option is enabled, the match is performed without regard to the case of alphabetic characters. When a match is found, the corresponding list is executed. If the ;; operator is used, no subsequent matches are attempted after the first pattern match. Using ;& in place of ;; causes execution to continue with the list associated with the next set of patterns. Using ;;& in place of ;; causes the shell to test the next pattern list in the statement, if any, and execute any associated list on a successful match, continuing the case statement execution as if the pattern list had not matched. The exit status is zero if no pattern matches. Otherwise, it is the exit status of the last command executed in list. if lista; then lista; [ elif lista; then lista; ] ... [ else lista; ] fi Wykonywana jest lista wystepujaca po if. Jezeli jej kod zakonczenia jest zerowy, to wykonywana jest lista klauzuli then. W przeciwnym wypadku, wykonywana jest lista kazdego elif po kolei; jesli kod zakonczenia ktorejs wynosi 0, to wykonywana jest lista then i polecenie jest konczone. Jezeli nie wystapil zaden z powyzszych przypadkow, to wykonywana jest lista wystepujaca po klauzuli else, jesli takowa istnieje. Kodem zakonczenia jest kod ostatniego wykonanego polecenia listy lub zero jesli zaden z warunkow nie okazal sie prawdziwy. while lista-1; do lista-2; done until lista-1; do lista-2; done Polecenie while wykonuje liste lista-2 w sposob ciagly dopoty, dopoki ostatnie polecenie listy lista-1 nie zwroci kodu zakonczenia rownego zero. Polecenie until dziala podobnie do polecenia while, a jedyna roznica jest to, ze test jest zanegowany: lista-2 jest wykonywana tak dlugo, az ostatnie polecenie listy-1 nie zwroci kodu zakonczenia roznego od zera. Kod wyjscia polecen while i until jest kodem zakonczenia ostatniego polecenia wykonanego z listy-2 lub zerem, jesli zadne z nich nie zostalo wykonane. Koprocesy (wspolprocesy) Koproces jest poleceniem powloki poprzedzonym slowem zastrzezonym coproc. Jest on wykonywany w podpowloce w sposob asynchroniczny, jesli polecenie zostalo zakonczone operatorem kontrolnym &, z ustawionym dwustronnym potokiem pomiedzy wykonujaca go powloka a koprocesem. Skladnia koprocesu jest nastepujaca: coproc [NAZWA] polecenie [przekierowania] Tworzy koproces o nazwie NAZWA. Polecenie moze byc albo poleceniem prostym, albo poleceniem zlozonym (zob. wyzej). NAZWA jest nazwa zmiennej powloki. Jesli nie poda sie NAZWY, domyslna jest COPROC. Zalecanym formatem korzystania z koprocesu jest coproc NAZWA { polecenie [przekierowania]; } Forma ta jest zalecana, poniewaz proste polecenia powoduja, ze koproces bedzie zawsze nazwany COPROC, jest takze prostsza w uzyciu i kompletniejsza, niz inne polecenia zlozone. Jesli polecenie jest poleceniem zlozonym, NAZWA jest opcjonalna. Slowo wystepujace po coproc okresla, czy jest ono interpretowane jako nazwa zmiennej: jest interpretowane jako NAZWA, jesli nie jest zastrzezonym slowem wprowadzajacym polecenie zlozone. Jesli polecenie jest prostym poleceniem, NAZWA jest niedozwolona; wynika to z koniecznosci zapobiegania pomylki pomiedzy NAZWA, a pierwszym slowem polecenia prostego. When the coprocess is executed, the shell creates an array variable (see Arrays below) named NAME in the context of the executing shell. The standard output of command is connected via a pipe to a file descriptor in the executing shell, and that file descriptor is assigned to NAME[0]. The standard input of command is connected via a pipe to a file descriptor in the executing shell, and that file descriptor is assigned to NAME[1]. This pipe is established before any redirections specified by the command (see REDIRECTION below). The file descriptors can be utilized as arguments to shell commands and redirections using standard word expansions. Other than those created to execute command and process substitutions, the file descriptors are not available in subshells. The process ID of the shell spawned to execute the coprocess is available as the value of the variable NAME_PID. The wait builtin command may be used to wait for the coprocess to terminate. Poniewaz koproces jest tworzony jako polecenie asynchroniczne, polecenie coproc zawsze zwroci powodzenie. Zwracanym statusem koprocesu jest kod zakonczenia polecenia. Definiowanie funkcji powloki Funkcja powloki jest obiektem wywolywanym podobnie jako polecenie proste i wykonujacym polecenie zlozone z nowym zestawem parametrow pozycyjnych. Funkcje powloki deklaruje sie w nastepujacy sposob: nazwa-f () polecenie-zlozone [przekierowanie] function nazwa-f [()] polecenie-zlozone [przekierowanie] This defines a function named fname. The reserved word function is optional. If the function reserved word is supplied, the parentheses are optional. The body of the function is the compound command compound-command (see Compound Commands above). That command is usually a list of commands between { and }, but may be any command listed under Compound Commands above. If the function reserved word is used, but the parentheses are not supplied, the braces are recommended. compound-command is executed whenever fname is specified as the name of a simple command. When in posix mode, fname must be a valid shell name and may not be the name of one of the POSIX special builtins. In default mode, a function name can be any unquoted shell word that does not contain $. Any redirections (see REDIRECTION below) specified when a function is defined are performed when the function is executed. The exit status of a function definition is zero unless a syntax error occurs or a readonly function with the same name already exists. When executed, the exit status of a function is the exit status of the last command executed in the body. (See FUNCTIONS below.) KOMENTARZE W powloce nie-interaktywnej lub w powloce interaktywnej, w ktorej wlaczono opcje interactive_comments do opcji wbudowanych shopt (zobacz WBUDOWANE POLECENIA POWLOKI ponizej) slowo rozpoczynajace sie od znaku # powoduje, ze slowo to i wszystkie pozostale znaki w tym wierszu beda ignorowane. Powloka interaktywna bez wlaczonej opcji interactive_comments nie pozwala na komentarze. Opcja interactive_comments jest domyslnie wlaczona w powlokach interaktywnych. CYTOWANIE Cytowanie sluzy do usuwania specjalnego znaczenia dla powloki pewnych znakow lub slow. Cytowanie mozna stosowac do wylaczania specjalnego traktowania znakow specjalnych, zapobiegania rozpoznawaniu slow zastrzezonych jako takich oraz do zapobiegania podstawianiu parametrow. Kazdy z metaznakow podanych powyzej w DEFINICJACH posiada dla powloki specjalne znaczenie i musi byc cytowany, jesli ma oznaczac samego siebie. Gdy uzywane sa funkcje interpretacji historii polecen (patrz INTERPRETACJA HISTORII), znak interpretacji historii, zwykle !, musi byc cytowany, jesli chce sie uniknac interpretacji historii. Istnieja trzy mechanizmy cytowania: znak specjalny (escape character), apostrofy (pojedyncze cudzyslowy) i cudzyslowy zwykle (podwojne). Niecytowany odwrotny ukosnik (\) jest znakiem specjalnym. Chroni on przed interpretacja doslowna wartosc nastepujacego po nim znaku, z wyjatkiem . Jesli pojawi sie para \ a sam odwrotny ukosnik nie jest cytowany, to traktowana jest ona jak kontynuacja wiersza (to znaczy, usuwana jest ze strumienia wejsciowego i w efekcie ignorowana). Ujecie znakow w apostrofy chroni doslowne wartosci kazdego z nich. Apostrof nie moze pojawic sie pomiedzy innymi apostrofami, nawet jesli jest poprzedzony odwrotnym ukosnikiem. Ujecie znakow w cudzyslowy chroni doslowne wartosci kazdego z nich, za wyjatkiem $, ` i \ oraz, gdy wlaczone jest dopelnianie z historii, !. Gdy powloka dziala w trybie posix, ! nie ma specjalnego znaczenia wewnatrz podwojnych cudzyslowow, nawet gdy wlaczone jest dopelnianie z historii. Znaki $ i ` zachowuja swe specjalne znaczenie wewnatrz cudzyslowow. Odwrotny ukosnik zachowuje specjalne znaczenie tylko, gdy wystepuje po nim jeden z ponizszych znakow: $, `, ", \ lub . Cudzyslow moze byc cytowany wewnatrz cudzyslowow przez poprzedzenie go odwrotnym ukosnikiem. Jesli dopelnianie z historii jest wlaczone, to bedzie wykonane, chyba ze znak ! jest ujety w cudzyslowy lub cytowany odwrotnym ukosnikiem. Odwrotny ukosnik poprzedzajacy ! nie jest usuwany. Parametry specjalne * i @ posiadaja specjalne znaczenie wewnatrz cudzyslowow (zobacz PARAMETRY ponizej). Character sequences of the form $'string' are treated as a special variant of single quotes. The sequence expands to string, with backslash-escaped characters in string replaced as specified by the ANSI C standard. Backslash escape sequences, if present, are decoded as follows: \a alarm (dzwonek) \b backspace \e \E znak escape \f znak wysuwu strony (form feed) \n znak nowego wiersza (new line) \r powrot karetki \t tabulacja pozioma (horizontal tab) \v tabulacja pionowa (vertical tab) \\ odwrotny ukosnik (backslash) \' apostrof \" cudzyslow \? znak zapytania \nnn osmiobitowy znak, ktorego wartoscia jest osemkowa liczba nnn (jedna do trzech cyfr osemkowych) \xHH osmiobitowy znak, ktorego wartoscia jest szesnastkowa liczba nnn (jedna lub dwie cyfry szesnastkowe) \uHHHH znak Unicode (ISO/IEC 10646) o wartosci szesnastkowej HHHH (jedna do czterech cyfr szesnastkowych) \UHHHHHHHH znak Unicode (ISO/IEC 10646) o wartosci szesnastkowej HHHHHHHH (jedna do osmiu cyfr szesnastkowych) \cx znak kontrolny x Przetlumaczony wynik jest pojedynczo cytowany, tak jakby nie bylo znaku dolara. A double-quoted string preceded by a dollar sign ($"string") will cause the string to be translated according to the current locale. The gettext infrastructure performs the lookup and translation, using the LC_MESSAGES, TEXTDOMAINDIR, and TEXTDOMAIN shell variables. If the current locale is C or POSIX, if there are no translations available, or if the string is not translated, the dollar sign is ignored. This is a form of double quoting, so the string remains double-quoted by default, whether or not it is translated and replaced. If the noexpand_translation option is enabled using the shopt builtin, translated strings are single-quoted instead of double-quoted. See the description of shopt below under SHELLBUILTINCOMMANDS. PARAMETRY Parametr jest elementem przechowujacym wartosci. Moze on byc nazwa, liczba lub jednym ze znakow specjalnych podanych ponizej w sekcji Parametry specjalne. Dla celow powloki zmienna jest parametrem oznaczanym przez nazwe. Zmienna posiada wartosc i zero lub wiecej atrybutow. Wartosc atrybutom przypisuje sie za pomoca polecenia wbudowanego declare (zobacz opis tego polecenia ponizej, w sekcji WBUDOWANE POLECENIA POWLOKI). Parametr jest ustawiony jesli przypisano mu wartosc. Lancuch pusty jest poprawna wartoscia. Po ustawieniu zmiennej, moze byc ona uniewazniona wylacznie przez uzycie wbudowanego polecenia unset (zobacz ponizej WBUDOWANE POLECENIA POWLOKI ). Do zmiennej mozna wykonac przypisanie przy pomocy instrukcji postaci nazwa=[wartosc] If value is not given, the variable is assigned the null string. All values undergo tilde expansion, parameter and variable expansion, command substitution, arithmetic expansion, and quote removal (see EXPANSION below). If the variable has its integer attribute set, then value is evaluated as an arithmetic expression even if the $((...)) expansion is not used (see Arithmetic Expansion below). Word splitting and pathname expansion are not performed. Assignment statements may also appear as arguments to the alias, declare, typeset, export, readonly, and local builtin commands (declaration commands). When in posix mode, these builtins may appear in a command after one or more instances of the command builtin and retain these assignment statement properties. W kontekscie, w ktorym instrukcja przypisania przypisuje wartosc do zmiennej powloki lub do tablicy indeksowanej, operator += moze posluzyc do dolaczenia lub dodania do poprzedniej wartosci zmiennej. Obejmuje to argumenty do polecen wbudowanych takich jak declare, ktore akceptuja instrukcje przypisania (polecen deklarujacych). Gdy += jest stosowane do zmiennej z ustawionym atrybutem integer, to wartosc jest obliczana jako wyrazenie arytmetyczne i dodawana do biezacej wartosci zmiennej, ktora rowniez jest obliczana. Gdy += jest stosowane do zmiennej tablicowej uzywajac przypisania zlozonego (patrz Tablice ponizej), wartosc zmiennej nie jest niszczona (jak to ma miejsce przy uzyciu =), a nowe wartosci sa dolaczane do tablicy poczynajac od indeksu wiekszego o jeden on maksymalnego indeksu tablicy (w przypadku tablic indeksowanych) lub jest dodawana jako dodatkowa para klucz-wartosc (w przypadku tablic asocjacyjnych). Gdy += jest stosowane do zmiennej lancuch-wartosc, to wartosc jest interpretowana i dolaczana do wartosci zmiennej. Zmiennej mozna przypisac atrybut nazwa referencyjna (ang. nameref) za pomoca opcji -n przekazanej poleceniom wbudowanym declare lub local (zob. opisy declare i local nizej) aby utworzyc nazwe referencyjna lub odniesienie do innej zmiennej. Pozwala to na posrednie operowanie na zmiennych. Gdy zmienna nazwy referencyjnej jest przywolywana, przypisywana, usuwana lub modyfikowane sa jej atrybuty (inne niz uzycie lub zmiana samej nazwy referencyjnej), operacja ta jest w rzeczywistosci wykonywana na zmiennej okreslonej wartoscia zmiennej nazwy odniesienia. Nazwa referencyjna jest czesto uzywana aby odniesc sie do zmiennej, ktorej nazwa jest przekazywana jako argument do funkcji. Przykladowo nazwa zmiennej jest przekazywana do funkcji powloki w pierwszym argumencie, wykonujac declare -n ref=$1 wewnatrz funkcji tworzacej zmienna nazwy referencyjnej ref, ktorej wartoscia jest nazwa zmiennej przekazana jako pierwszy argument. Odniesienie lub przypisanie ref oraz zmiana jej atrybutow sa traktowane jako odniesienie lub przypisania do zmiennej oraz zmiana atrybutow zmiennej ktorej nazwe przekazano jako $1. Jesli zmienna kontrolujace petle for ma atrybut nazwy referencyjnej, lista slow moze byc lista zmiennych powloki, a nazwa zostanie przypisana za kazdemu slowu z listy, w kolejnosci, przy wykonywaniu petli. Zmienne tablicowe nie moga otrzymac atrybutu nameref, jednak do zmiennych nazw referencyjnych moga odnosic sie zmienne tablicowe i wskazniki zmiennych tablicowych. Nazwy referencyjne mozna usunac stosujac opcje -n do polecenia wbudowanego unset. W przeciwnym razie, gdy unset jest wykonywane z nazwa referencyjna jako argument, zmienna do ktorej odnosi sie nazwa referencyjna zostanie usunieta. Parametry pozycyjne Parametr pozycyjny to parametr okreslany cyfra lub cyframi, innymi niz pojedyncza cyfra 0. Parametrom pozycyjnym nadawane sa wartosci argumentow powloki (w czasie jej wywolania). Wartosci te moga byc ponownie nadawane przy pomocy wbudowanego polecenia set. Do parametrow pozycyjnych nie mozna wykonac przypisania przy pomocy instrukcji przypisania. Parametry pozycyjne sa tymczasowo zastepowane podczas wykonywania funkcji powloki (zobacz ponizej FUNKCJE). Jezeli interpretowany jest parametr pozycyjny okreslany wiecej niz jedna cyfra, to musi byc ujety w nawiasy (zobacz ponizej INTERPRETACJA). Parametry specjalne Powloka kilka parametrow traktuje specjalnie. Do parametrow tych mozna sie wylacznie odwolywac; nie jest dozwolone przypisywanie im wartosci. * Interpretowane jest jako parametry pozycyjne, poczawszy od pierwszego. Gdy interpretacja nie pojawia sie wewnatrz cudzyslowow, kazdy parametr pozycyjny jest interpretowany jako oddzielne slowo. W kontekscie w jakim wystepuja, te slowa ulegaja kolejnemu podzialowi na slowa i rozwijaniu sciezek. Gdy interpretacja pojawia sie wewnatrz cudzyslowow, to parametr ten interpretowany jest jako pojedyncze slowo z wartosciami kazdego z parametrow rozdzielonymi pierwszym znakiem zmiennej specjalnej IFS. To znaczy, "$*" jest rownowazne "$1c$2c...", gdzie c jest pierwszym znakiem wartosci zmiennej IFS. Jezeli IFS nie jest ustawione, to parametry oddzielane sa spacjami. Jesli IFS jest lancuchem pustym, to parametry sa ze soba polaczone bez rozdzielajacych je separatorow. @ Expands to the positional parameters, starting from one. In contexts where word splitting is performed, this expands each positional parameter to a separate word; if not within double quotes, these words are subject to word splitting. In contexts where word splitting is not performed, this expands to a single word with each positional parameter separated by a space. When the expansion occurs within double quotes, each parameter expands to a separate word. That is, "$@" is equivalent to "$1" "$2" ... If the double-quoted expansion occurs within a word, the expansion of the first parameter is joined with the beginning part of the original word, and the expansion of the last parameter is joined with the last part of the original word. When there are no positional parameters, "$@" and $@ expand to nothing (i.e., they are removed). # Interpretowane jako liczba parametrow pozycyjnych, podana dziesietnie. ? Interpretowane jako kod zakonczenia ostatnio wykonanego potoku pierwszoplanowego. - Interpretowane jako biezace flagi opcji, takie jakie zostaly podane podczas wywolania, ustawione przy pomocy wbudowanego polecenia set lub ustawione przez sama powloke (tak jak opcja -i). $ Interpretowany jest jako identyfikator procesu powloki. W podpowloce, interpretowany jest jako ID procesu biezacej powloki, nie zas podpowloki. ! Interpretowany jako ID procesu ostatnio wykonywanego polecenia tla, gdy jest wykonywane jako polecenie asynchroniczne lub uzywajac slowa wbudowanego bg (zob. nizej KONTROLA ZADAN). 0 Interpretowany jako nazwa powloki lub skryptu powloki. Ustawiane jest to na etapie inicjowania powloki. Jezeli bash wywolywany zostal z plikiem polecen, to $0 ustawiane jest na nazwe tego pliku. Jesli bash zostal uruchomiony z opcja -c, to $0 jest ustawiane na pierwszy argument po lancuchu, jaki ma zostac wywolany, jesli taki wystepuje. W przeciwnym wypadku, ustawiany jest na nazwe pliku uzyta do wywolania bash, jaka podaje argument zerowy. Zmienne powloki Powloka ustawia nastepujace zmienne: _ Podczas uruchamiania powloki, ustawiany na nazwe powloki lub wykonywanego skryptu powloki przekazanego w liscie argumentow. Nastepnie, interpretowany jest jako ostatni argument poprzedniego polecenia prostego, wykonywanego na pierwszym planie, po interpretacji. Ustawiany rowniez na pelna nazwe pliku kazdego polecenia wykonanego i umieszczonego w srodowisku eksportowanym do tego polecenia. Podczas sprawdzania poczty parametr ten przechowuje nazwe aktualnie sprawdzanego pliku poczty. BASH Interpretowane jako pelna nazwa pliku uzyta do wywolania tego przebiegu bash. BASHOPTS Oddzielana dwukropkiem lista wlaczonych opcji powloki. Kazde slowo na liscie jest poprawnym argumentem do opcji -s wbudowanego polecenia shopt (patrz WBUDOWANE POLECENIA POWLOKI ponizej). Opcje pojawiajace sie w BASHOPTS sa tymi, ktore sa raportowane jako wlaczone (on) przez shopt. Jesli ta zmienna wystepuje w srodowisku podczas uruchamiania bash, to kazda opcja powloki z listy bedzie wlaczona przed odczytaniem plikow startowych. Ta zmienna jest tylko do odczytu. BASHPID Expands to the process ID of the current bash process. This differs from $$ under certain circumstances, such as subshells that do not require bash to be re-initialized. Assignments to BASHPID have no effect. If BASHPID is unset, it loses its special properties, even if it is subsequently reset. BASH_ALIASES Zmienna tablicy asocjacyjnej, ktorej wpisy odpowiadaja wewnetrznej liscie aliasow zarzadzanych przez wbudowane polecenie alias. Elementy dodawane do tablicy pojawiaja sie na liscie aliasow, jednak usuniecie elementow tablicy obecnie nie powoduje usuniecie aliasow z listy aliasow. Jesli BASH_ALIASES zostanie skasowana, traci swoje specjalne wlasciwosci, nawet jesli zostanie pozniej zresetowana. BASH_ARGC An array variable whose values are the number of parameters in each frame of the current bash execution call stack. The number of parameters to the current subroutine (shell function or script executed with . or source) is at the top of the stack. When a subroutine is executed, the number of parameters passed is pushed onto BASH_ARGC. The shell sets BASH_ARGC only when in extended debugging mode (see the description of the extdebug option to the shopt builtin below). Setting extdebug after the shell has started to execute a script, or referencing this variable when extdebug is not set, may result in inconsistent values. BASH_ARGV An array variable containing all of the parameters in the current bash execution call stack. The final parameter of the last subroutine call is at the top of the stack; the first parameter of the initial call is at the bottom. When a subroutine is executed, the parameters supplied are pushed onto BASH_ARGV. The shell sets BASH_ARGV only when in extended debugging mode (see the description of the extdebug option to the shopt builtin below). Setting extdebug after the shell has started to execute a script, or referencing this variable when extdebug is not set, may result in inconsistent values. BASH_ARGV0 When referenced, this variable expands to the name of the shell or shell script (identical to $0; see the description of special parameter 0 above). Assignment to BASH_ARGV0 causes the value assigned to also be assigned to $0. If BASH_ARGV0 is unset, it loses its special properties, even if it is subsequently reset. BASH_CMDS Zmienna tablicy asocjacyjnej, ktorej wpisy odpowiadaja wewnetrznej liscie skrotow polecen, zarzadzanej przez wbudowane polecenie hash. Elementy dodawane do tablicy pojawiaja sie na liscie skrotow, jednak usuniecie elementow tablicy obecnie nie powoduje powoduje usuniecia ich z tablicy skrotow. Jesli BASH_CMDS zostanie skasowana, traci swoje specjalne wlasciwosci, nawet jesli zostanie pozniej zresetowana. BASH_COMMAND The command currently being executed or about to be executed, unless the shell is executing a command as the result of a trap, in which case it is the command executing at the time of the trap. If BASH_COMMAND is unset, it loses its special properties, even if it is subsequently reset. BASH_EXECUTION_STRING Argument polecenia do opcji wywolania -c. BASH_LINENO Zmienna tablicowa, ktorej wartosciami sa numery wierszy plikow zrodlowych, w ktorych przywolano kazdy odpowiednik ze zmiennej FUNCNAME. ${BASH_LINENO[$i]} jest numerem wiersza w pliku zrodlowym (${BASH_SOURCE[$i+1]}), gdzie przywolano ${FUNCNAME[$i]} (lub ${BASH_LINENO[$i-1]}, jesli odnosi sie do innej funkcji powloki). Prosze uzyc LINENO, aby pobrac biezacy numer wiersza. BASH_LOADABLES_PATH Lista rozdzielonych dwukropkami katalogow, w ktorych powloka szuka dynamicznie ladowalnych polecen wbudowanych podanych przez polecenie enable. BASH_REMATCH Zmienna tablicowa, ktorej wartosci sa przypisywane operatorem dwuargumentowym =~ do polecenia warunkowego [[. Element o indeksie 0 jest czescia lancucha pasujacego do calego wyrazenia regularnego. Element o indeksie n jest czescia lancucha pasujacego do n-tego podwyrazenia ujetego w nawiasy. BASH_SOURCE Zmienna tablicowa, ktorej wartosciami sa nazwy plikow zrodlowych, w ktorych zdefiniowano odpowiadajace nazwy funkcji powloki w zmiennej tablicowej FUNCNAME. Funkcja powloki ${FUNCNAME[$i]} jest zdefiniowana w pliku ${BASH_SOURCE[$i]} i wywolywana z ${BASH_SOURCE[$i+1]}.. BASH_SUBSHELL Incremented by one within each subshell or subshell environment when the shell begins executing in that environment. The initial value is 0. If BASH_SUBSHELL is unset, it loses its special properties, even if it is subsequently reset. BASH_VERSINFO Zmienna tablicowa tylko do odczytu, ktorej elementy zawieraja informacje o wersji uruchomionego bash. Wartosci przypisane elementom tablicy sa nastepujace: BASH_VERSINFO[0] Glowny numer wersji, wydanie (release). BASH_VERSINFO[1] Poboczny numer wersji (version). BASH_VERSINFO[2] Poziom lat (patch level). BASH_VERSINFO[3] Wersja kompilatu (build version). BASH_VERSINFO[4] Status wydania (np. beta1). BASH_VERSINFO[5] Wartosc MACHTYPE. BASH_VERSION Interpretowane jako lancuch opisujacy wersje uruchomionego bash. COMP_CWORD Indeks w ${COMP_WORDS} slowa zawierajacego biezaca pozycje kursora. Zmienna ta jest dostepna wylacznie w funkcjach powloki wywolanych przez uslugi programowalnego uzupelniania (zobacz ponizej Programowalne uzupelnianie). COMP_KEY Klawisz (lub ostatni klawisz w sekwencji klawiszy) uzyty do wywolania biezacej funkcji uzupelniania. COMP_LINE Biezacy wiersz polecen. Ta zmienna jest dostepna tylko w funkcjach powloki i poleceniach zewnetrznych wywolywanych przez uslugi programowalnego uzupelniania (zobacz ponizej Programowalne uzupelnianie). COMP_POINT Indeks biezacej pozycji kursora wzgledem poczatku biezacego polecenia. Jezeli kursor jest na koncu biezacego polecenia, to wartosc tej zmiennej jest rowna ${#COMP_LINE}. Ta zmienna jest dostepna tylko w funkcjach powloki i poleceniach zewnetrznych wywolywanych przez uslugi programowalnego uzupelniania (zobacz ponizej Programowalne uzupelnianie). COMP_TYPE Ustawiana na wartosc calkowita odpowiadajaca typowi uzupelnienia, ktorego probe przeprowadzono, ktore spowodowalo wywolanie funkcji uzupelnienia: TAB, do normalnego uzupelnienia, ?, do wypisywania uzupelnien po udanej tabulacji, !, do wypisywania alternatyw czesciowego uzupelnienia slowa, @, do wypisania uzupelnien, jesli slowo nie zostalo zmodyfikowane lub %, do uzupelnienia menu. Zmienna ta jest dostepna tylko w funkcjach powloki i zewnetrznych poleceniach wywolanych przez narzedzia programowalnego uzupelnienia powloki (patrz ponizej Programowalne uzupelnienie). COMP_WORDBREAKS Zestaw znakow traktowanych przez biblioteke readline jako separatory slow, podczas przeprowadzania uzupelnien slow. Jesli uniewazniono COMP_WORDBREAKS, to traci swe specjalne wlasciwosci, nawet jezeli jest nastepnie ponownie ustawiona. COMP_WORDS Zmienna tablicowa (patrz Tablice ponizej) skladajaca sie z pojedynczych slow z aktualnego wiersza polecen. Wiersz jest dzielony na slowa tak, jak podzielilby go readline, uzywajac COMP_WORDBREAKS, zgodnie z opisem powyzej. Zmienna ta jest dostepna wylacznie w funkcjach powloki wywolanych przez uslugi programowalnego uzupelniania (zobacz ponizej Programowalne uzupelnianie). COPROC Zmienna tablicowa (patrz ponizej Tablice) tworzona do zatrzymania deskryptorow plikow z wyjscia lub wejscia nienazwanych koprocesow (zobacz Koprocesy (wspolprocesy) powyzej). DIRSTACK Zmienna tablicowa (zobacz Tablice ponizej) zawierajaca biezaca zawartosc stosu katalogow. Katalogi pojawiaja sie na stosie w kolejnosci, w jakiej sa wyswietlane przez wbudowane dirs. Przypisanie do elementow tej zmiennej tablicowej moze posluzyc do zmiany katalogow juz wystepujacych na stosie, ale do dodania i usuniecia katalogow musza byc uzyte wbudowane pushd i popd. Przypisanie wartosci tej zmiennej nie zmieni biezacego katalogu. Jesli DIRSTACK jest uniewaznione, to traci swe specjalne wlasciwosci, nawet jezeli jest nastepnie ponownie ustawione. EPOCHREALTIME Each time this parameter is referenced, it expands to the number of seconds since the Unix Epoch (see time(3)) as a floating point value with micro-second granularity. Assignments to EPOCHREALTIME are ignored. If EPOCHREALTIME is unset, it loses its special properties, even if it is subsequently reset. EPOCHSECONDS Each time this parameter is referenced, it expands to the number of seconds since the Unix Epoch (see time(3)). Assignments to EPOCHSECONDS are ignored. If EPOCHSECONDS is unset, it loses its special properties, even if it is subsequently reset. EUID Interpretowane jako efektywny identyfikator biezacego uzytkownika, inicjowane przy uruchamianiu powloki. Zmienna ta jest tylko do odczytu. FUNCNAME Zmienna tablicowa zawierajaca nazwy wszystkich funkcji powloki obecnych w stosie wywolan. Element z indeksem 0 jest nazwa aktualnie wykonywanej funkcji powloki. Najnizszy element (tzn. z najwyzszym numerem indeksu) to "main". Zmienna istnieje tylko gdy wykonywana jest funkcja powloki. Przypisania do FUNCNAME nie odnosza skutku. Jesli FUNCNAME jest uniewazniona, to traci swe specjalne wlasciwosci, nawet jesli jest nastepnie ponownie ustawiona. Zmienna ta moze zostac uzyta razem z BASH_LINENO i BASH_SOURCE. Kazdy element FUNCNAME ma swoj odpowiednik w BASH_LINENO i BASH_SOURCE opisujacy stos wywolania. Na przyklad, ${FUNCNAME[$i]} zostala wywolana z pliku ${BASH_SOURCE[$i+1]} w wierszu o numerze ${BASH_LINENO[$i]}. Wbudowane polecenie caller wyswietla biezacy stos wywolania uzywajac tej informacji. GROUPS Zmienna tablicowa zawierajaca liste grup, ktorych czlonkiem jest biezacy uzytkownik. Proby przypisywania wartosci do GROUPS nie odnosza efektu. Jezeli GROUPS jest uniewaznione, to traci swe specjalne wlasciwosci, nawet jezeli jest nastepnie ponownie ustawione. HISTCMD Licznik historii (indeks na liscie historii polecen) biezacego polecenia. Przypisania do HISTCMD sa ignorowane. Jezeli HISTCMD jest uniewaznione, to traci swe specjalne wlasciwosci, nawet jezeli jest nastepnie ponownie ustawione. HOSTNAME Automatycznie ustawiane na nazwe aktualnego hosta. HOSTTYPE Automatycznie ustawiane na lancuch unikalnie opisujacy typ maszyny, na ktorej jest wykonywany bash. Wartosc domyslna zalezy od systemu. LINENO Przy kazdym odwolaniu do tego parametru powloka zastepuje jego wartosc liczba dziesietna reprezentujaca aktualny kolejny numer wiersza (poczynajac od 1) skryptu lub funkcji. Nie zapewnia sie, by wartosc ta miala znaczenie poza skryptem badz funkcja. Jesli LINENO jest uniewaznione, to traci swe specjalne wlasciwosci, nawet jezeli jest nastepnie ponownie ustawione. MACHTYPE Automatycznie ustawiane na lancuch w pelni opisujacy typ systemu, na ktorym jest wykonywany bash, w standardowym formacie GNU cpu-firma-system. Wartosc domyslna zalezy od systemu. MAPFILE Zmienna tablicowa (patrz Tablice ponizej) tworzona do zatrzymania tekstu odczytywanego przez wbudowane polecenie mapfile, gdy nie podano nazwy zmiennej. OLDPWD Poprzedni katalog roboczy ustawiony poleceniem cd. OPTARG Wartosc ostatniego, bedacego opcja, argumentu przetworzonego przez wbudowane polecenie getopts (zobacz ponizej WBUDOWANE POLECENIA POWLOKI). OPTIND Numer (indeks) nastepnego argumentu, jaki ma zostac przetworzony przez wbudowane polecenie getopts (zobacz ponizej WBUDOWANE POLECENIA POWLOKI). OSTYPE Automatycznie ustawiane na lancuch opisujacy system operacyjny, w ktorym jest wykonywany bash. Wartosc domyslna zalezy od systemu. PIPESTATUS Zmienna tablicowa (zobacz Tablice ponizej) zwierajaca liste kodow zakonczenia z procesow w ostatnio wykonywanym potoku pierwszoplanowym (ktory moze zawierac pojedyncze polecenie). PPID Identyfikator procesu macierzystego powloki. Zmienna ta jest tylko do odczytu. PWD Biezacy katalog roboczy, ustawiony poleceniem cd. RANDOM Each time this parameter is referenced, it expands to a random integer between 0 and 32767. Assigning a value to RANDOM initializes (seeds) the sequence of random numbers. If RANDOM is unset, it loses its special properties, even if it is subsequently reset. READLINE_ARGUMENT Any numeric argument given to a readline command that was defined using "bind -x" (see SHELL BUILTIN COMMANDS below) when it was invoked. READLINE_LINE Zawartosc bufora wiersza readline, do uzycia z "bind -x" (patrz WBUDOWANE POLECENIA POWLOKI ponizej). READLINE_MARK The position of the mark (saved insertion point) in the readline line buffer, for use with "bind -x" (see SHELL BUILTIN COMMANDS below). The characters between the insertion point and the mark are often called the region. READLINE_POINT Pozycja punktu wprowadzania w buforze wiersza readline, do uzycia z "bind -x" (patrz WBUDOWANE POLECENIA POWLOKI ponizej). REPLY Ustawiona na wiersz wejscia odczytany wbudowanym poleceniem read jesli nie podano zadnych jego argumentow. SECONDS Each time this parameter is referenced, it expands to the number of seconds since shell invocation. If a value is assigned to SECONDS, the value returned upon subsequent references is the number of seconds since the assignment plus the value assigned. The number of seconds at shell invocation and the current time are always determined by querying the system clock. If SECONDS is unset, it loses its special properties, even if it is subsequently reset. SHELLOPTS Lista, rozdzielonych dwukropkami, wlaczonych opcji powloki. Kazde slowo listy jest poprawnym argumentem opcji -o wbudowanego polecenia set (zobacz WBUDOWANE POLECENIA POWLOKI ponizej). Opcje pojawiajace sie w SHELLOPTS to te, ktore sa zglaszane jako wlaczone (on) przez set -o. Jesli zmienna ta istnieje w srodowisku podczas uruchamiania bash, to kazda z opcji powloki wystepujaca na tej liscie zostanie wlaczona przed odczytem jakichkolwiek plikow startowych. Jest to zmienna tylko do odczytu. SHLVL Inkrementowana kazdorazowo, gdy uruchamiane jest kolejne wystapienie bash. SRANDOM This variable expands to a 32-bit pseudo-random number each time it is referenced. The random number generator is not linear on systems that support /dev/urandom or arc4random, so each returned number has no relationship to the numbers preceding it. The random number generator cannot be seeded, so assignments to this variable have no effect. If SRANDOM is unset, it loses its special properties, even if it is subsequently reset. UID Interpretowane jako identyfikator biezacego uzytkownika, inicjowane przy uruchamianiu powloki. Zmienna ta jest tylko do odczytu. Ponizsze zmienne sa uzywane przez powloke. W niektorych przypadkach bash przypisuje im domyslne wartosci; przypadki te sa odnotowane nizej. BASH_COMPAT The value is used to set the shell's compatibility level. See SHELL COMPATIBILITY MODE below for a description of the various compatibility levels and their effects. The value may be a decimal number (e.g., 4.2) or an integer (e.g., 42) corresponding to the desired compatibility level. If BASH_COMPAT is unset or set to the empty string, the compatibility level is set to the default for the current version. If BASH_COMPAT is set to a value that is not one of the valid compatibility levels, the shell prints an error message and sets the compatibility level to the default for the current version. The valid values correspond to the compatibility levels described below under SHELL COMPATIBILITY MODE. For example, 4.2 and 42 are valid values that correspond to the compat42 shopt option and set the compatibility level to 42. The current version is also a valid value. BASH_ENV Jezeli parametr ten jest ustawiony podczas wykonywania przez bash skryptu, to jego wartosc interpretowana jest jako nazwa pliku zawierajacego polecenia do zainicjowania powloki, jak w ~/.bashrc. Wartosc BASH_ENV podlega interpretacji parametrow, podstawianiu wynikow polecen i interpretacjom wyrazen arytmetycznych przed interpretacja jej jako nazwy pliku. Zmienna PATH nie jest uzywana do znalezienia pliku o powstalej w ten sposob nazwie. BASH_XTRACEFD Jesli ustawiono liczbe calkowita odpowiadajaca poprawnemu deskryptorowi pliku, to bash zapisze wyjscie stosu wygenerowane gdy set -x jest wlaczone do tego deskryptora pliku. Deskryptor pliku jest zamykany gdy BASH_XTRACEFD jest usuwana lub przy przypisaniu nowej wartosci. Usuniecie BASH_XTRACEFD lub przypisanie jej lancucha pustego powoduje wyslanie stosu na standardowe wyjscie bledow. Prosze zauwazyc, ze ustawienie BASH_XTRACEFD na 2 (deskryptor pliku wyjscia bledow), a nastepnie usuniecie jej spowoduje zamkniecie standardowego wyjscia bledow. CDPATH Sciezka wyszukiwania dla polecenia cd. Jest to lista rozdzielonych dwukropkami katalogow, w ktorych powloka szuka katalogow docelowych podanych przez polecenie cd. Przykladowa wartoscia jest ".:~:/usr". CHILD_MAX Ustawia liczbe wartosci kodow wyjscia zakonczonych procesow potomnych, ktore ma zapamietac powloka. Bash nie pozwoli na zmniejszenie tej wartosci ponizej minimum okreslonego norma POSIX, istnieje rowniez wartosc maksymalna (obecnie 8192), ktorej nie mozna przekroczyc. Minimalna wartosc jest zalezna od systemu. COLUMNS Uzywana przez polecenie wbudowane select do wyznaczenia szerokosci terminala przy wypisywaniu list wyboru. Ustawiana automatycznie, gdy wlaczono opcje checkwinsize oraz w powloce interaktywnej po otrzymaniu SIGWINCH. COMPREPLY Zmienna tablicowa, z ktorej bash czyta mozliwe uzupelnienia tworzone przez funkcje powloki wywolana przez usluge programowalnego uzupelniania (zobacz ponizej Programowalne uzupelnianie). Kazdy element tablicy zawiera jedno mozliwe uzupelnienie. EMACS Gdy bash znajdzie opisywana zmienna w srodowisku podczas uruchamiania powloki, z wartoscia ustawiona na "t", to przyjmuje, ze powloka dziala w buforze powloki Emacsa i wylacza edycje wiersza. ENV Expanded and executed similarly to BASH_ENV (see INVOCATION above) when an interactive shell is invoked in posix mode. EXECIGNORE Lista oddzielonych dwukropkami wzorcow powloki (zob. Dopasowanie wzorca) definiujacych liste nazw plikow ignorowanych przy szukaniu polecen za pomoca PATH. Pliki ktorych pelna sciezka pasuje do jednego z tych wzorcow nie sa traktowane jako pliki wykonywalne dla dopelniania i wykonywania polecen przez PATH. Nie wplywa to na zachowanie polecen [, test oraz [[. Pelne sciezki w liscie skrotow polecen nie sa przedmiotem EXECIGNORE. Te zmienna nalezy uzywac do ignorowania plikow bibliotek wspoldzielonych, ktore maja ustawione prawo wykonywania, ale nie sa plikami wykonywalnymi. Dopasowanie wzorcow przestrzega ustawien opcji powloki extglob. FCEDIT Domyslny edytor dla wbudowanego polecenia fc. FIGNORE Lista rozdzielonych dwukropkami przyrostkow, jakie maja byc ignorowane podczas uzupelniania nazw plikow (zobacz READLINE ponizej). Nazwa pliku o przyrostku pasujacym do jednej z pozycji FIGNORE wylaczana jest z listy dopasowanych nazw plikow. Przykladowa wartoscia jest ".o:~". FUNCNEST Gdy jest ustawiona na wartosc numeryczna wieksza od zera, definiuje maksymalny poziom zagniezdzenia funkcji. Wywolania funkcji przekraczajace okreslony poziom beda powodowaly przerwanie biezacego polecenia. GLOBIGNORE Lista rozdzielonych dwukropkami wzorcow definiujacych zestaw nazw plikow, jakie maja byc ignorowane podczas rozwijania nazw plikow. Jezeli plik pasujacy do wzorca rozwijajacego nazwe sciezkowa pasuje rowniez do ktoregos z wzorcow w GLOBIGNORE, to jest on usuwany z listy dopasowanych. HISTCONTROL Lista rozdzielonych dwukropkami wartosci, okreslajacymi sposob zapisywania w liscie historii. Jezeli posiada wartosc ignorespace, to wiersze rozpoczynajace sie od znaku spacji nie sa wprowadzane do listy historii. Jesli posiada wartosc ignoredups, to wiersze pasujace do ostatniego wiersza historii nie sa wprowadzane. Wartosc ignoreboth laczy obie te mozliwosci. Wartosc erasedups powoduje usuniecie z historii wszystkich wczesniejszych wierszy, pasujacych do biezacego, przed zapisaniem listy. Wszystkie wartosci poza wymienionymi powyzej sa ignorowane. Jesli zmienna ta nie jest zdefiniowana lub ma wartosc inna od powyzszych, to wszystkie wiersze przeczytane przez analizator skladni zachowywane sa w liscie historii, stosownie do wartosci HISTIGNORE. Drugi i kolejne wiersze zlozonego polecenia wielowierszowego nie sa sprawdzane i sa dodawane do historii bez wzgledu na wartosc HISTCONTROL. HISTFILE Nazwa pliku, w ktorym zachowywana jest historia polecen (zobacz HISTORIA ponizej). Wartoscia domyslna jest ~/.bash_history. Jesli ustawienie tej zmiennej zostanie skasowane, to historia polecen nie bedzie zachowana po zakonczeniu pracy powloki. HISTFILESIZE Maksymalna liczba wierszy zawartych w pliku historii. Podczas przypisywania wartosci tej zmiennej, jezeli jest to niezbedne, plik historii jest obcinany tak, by nie zawieral wiecej wierszy, przez usuniecie najstarszych wpisow. Plik historii jest takze obcinany do tego rozmiaru po zapisaniu go w czasie konczenia pracy przez powloke. Jesli wartosc wynosi 0, plik historii jest obcinany do zera. Wartosci nienumeryczne i wartosci numeryczne mniejsze niz zero wstrzymuja obcinanie. Powloka ustawia wartosc domyslna do wartosci HISTSIZE po odczytaniu plikow poczatkowych powloki. HISTIGNORE Lista rozdzielonych dwukropkami wzorcow sluzacych do decydowania, jakie wiersze polecen powinny byc zachowane w liscie historii. Kazdy z wzorcow zakotwiczony jest na poczatku wiersza i musi pasowac do calego wiersza (nie jest dodawane zadne niejawne `*'). Kazdy z wzorcow sprawdzany jest z biezacym wierszem po wykonaniu kontroli okreslonych przez HISTCONTROL. Oprocz zwyklych znakow dopasowywania wzorcow uzywanych przez powloke, `&' dopasowuje poprzedni wiersz historii. Literal `&' mozna uzyskac poprzedzajac go odwrotnym ukosnikiem; odwrotny ukosnik jest usuwany przed proba dopasowania. Druga i kolejne wiersze zlozonego polecenia wielowierszowego nie sa sprawdzane i sa dodawane do historii bez wzgledu na wartosc HISTIGNORE. Dopasowanie wzorcow honoruje ustawienia opcji powloki extglob. HISTSIZE Liczba polecen do zapamietania w historii polecen (zob. HISTORIA ponizej). Jesli wartosc wynosi 0, polecenia nie sa zachowywane w historii. Wartosci numeryczne mniejsze niz zero powoduja, ze kazde polecenie jest zapamietywane w historii (znosi limit). Powloka ustawia wartosc domyslna 500 po odczytaniu plikow poczatkowych powloki. HISTTIMEFORMAT Gdy ta zmienna jest ustawiona i nie jest pusta, jej wartosc jest uzyta jak format lancucha do strftime(3), w celu wyswietlenia pieczatki czasowej zwiazanej z kazdym wpisem historii, wyswietlanym przez wbudowane polecenie history. Gdy zmienna jest ustawiona, pieczatki czasowe sa zapisywane do pliku historii, dzieki czemu moga byc zachowywane miedzy sesjami powloki. Uzywany jest wowczas znak komentarza historii, aby odroznic pieczatki czasowe od pozostalych wierszy historii. HOME Katalog domowy biezacego uzytkownika; domyslny argument wbudowanego polecenia cd. Wartosc tej zmiennej wykorzystywana jest tez przy wykonywaniu interpretacji tyld. HOSTFILE Zawiera nazwe pliku o tym samym formacie co /etc/hosts ktory powinien byc czytany, gdy powloka potrzebuje uzupelnic nazwe hosta. Liste mozliwych uzupelnien mozna zmieniac podczas pracy powloki. Nastepnym razem, gdy wykonywana jest proba uzupelnienia nazwy hosta bash dodaje zawartosc nowego pliku do juz istniejacej listy. Jezeli HOSTFILE jest ustawione, ale nie posiada wartosci, bash usiluje uzyskac liste mozliwych uzupelnien nazw hostow czytajac /etc/hosts Gdy HOSTFILE jest uniewazniane, lista hostow jest czyszczona. IFS Wewnetrzny Separator Pol (Internal Field Separator) uzywany do podzialu na slowa po interpretacjach i dzieleniu wierszy na slowa we wbudowanym poleceniu read. Jego domyslna wartoscia jest ,,". IGNOREEOF Steruje dzialaniem powloki interaktywnej przy otrzymaniu przez nia znaku EOF jako jedynego znaku wejscia. Jezeli jest ustawiona, to jej wartosc jest liczba kolejnych znakow EOF jakie musza byc wpisane jako pierwsze znaki wiersza wprowadzania przed zakonczeniem pracy przez bash. Jesli zmienna ta istnieje, ale nie zawiera wartosci numerycznej lub nie ma wartosci, to wartoscia domyslna jest 10. Jezeli nie istnieje, to EOF wskazuje powloce koniec wprowadzanych danych. INPUTRC Nazwa pliku startowego dla readline, uniewazniajaca domyslny plik ~/.inputrc (zobacz READLINE ponizej). INSIDE_EMACS If this variable appears in the environment when the shell starts, bash assumes that it is running inside an Emacs shell buffer and may disable line editing, depending on the value of TERM. LANG Sluzy do wyznaczania kategorii locale dla wszystkich kategorii nie wyszczegolnionych przez zmienne rozpoczynajace sie od znakow LC_. LC_ALL Zmienna ta uniewaznia wartosc LANG i wszelkich innych zmiennych LC_ okreslajacych kategorie locale. LC_COLLATE Ta zmienna wyznacza kolejnosc (collation order) uzywana przy sortowaniu wynikow rozwijania nazw plikow, decyduje tez o zachowaniu wielu wyrazen, klas rownowaznych i sekwencje sortowania (collating sequences) w rozwijaniu nazw plikow i dopasowywaniu wzorcow. LC_CTYPE Ta zmienna decyduje o interpretacji znakow i zachowaniu sie klas znakow wewnatrz rozwijania nazw plikow i dopasowywania wzorcow. LC_MESSAGES Ta zmienna decyduje o ustawieniu locale uzywanym do tlumaczenia ujetych w cudzyslowy lancuchow poprzedzonych znakiem $. LC_NUMERIC Ta zmienna okresla kategorie locale uzywana do formatowania liczb. LC_TIME Ta zmienna okresla kategorie locale uzywana do formatowania daty i czasu. LINES Uzywana przez polecenie wbudowane select do wyznaczenia dlugosci kolumn przy wypisywaniu list wyboru. Ustawiana automatycznie gdy wlaczono opcje checkwinsize oraz w powloce interaktywnej po otrzymaniu po otrzymaniu SIGWINCH. MAIL Jezeli parametrowi temu jest przypisana nazwa pliku, a nie jest ustawiona zmienna MAILPATH, to bash informuje uzytkownika o nadejsciu poczty do podanego pliku lub katalogu w formacie Maildir. MAILCHECK Okresla jak czesto (w sekundach) bash sprawdza poczte. Domyslnie jest to 60 sekund. Gdy nadchodzi pora sprawdzenia poczty, powloka wykonuje to przed wyswietleniem glownej zachety. Jesli zmienna ta nie jest ustawiona lub jest ustawiona na wartosc nie wieksza od zera lub zero, to powloka wylacza sprawdzanie poczty. MAILPATH Lista rozdzielonych dwukropkami nazw plikow, w jakich ma byc sprawdzana poczta. Mozna podac komunikat, jaki ma zostac wyswietlony, gdy do danego pliku przybedzie wiadomosc pocztowa, przez oddzielenie nazwy pliku od komunikatu znakiem '?'. Uzyte w tekscie komunikatu, $_ interpretowane jest jako nazwa biezacego pliku pocztowego. Przyklad: MAILPATH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"' Bash mozna skonfigurowac, aby zapewnil tej zmiennej wartosc domyslna (domyslnie jej nie posiada), ale polozenie plikow pocztowych uzytkownika, jakim sie posluguje zalezy od systemu (np. /var/mail/$USER). OPTERR Jezeli ustawiono na wartosc 1, bash wyswietla komunikaty o bledach generowanych przez wbudowane polecenie getopts (zobacz WBUDOWANE POLECENIA POWLOKI ponizej). OPTERR inicjowane jest na 1 kazdorazowo, gdy wywolywana jest powloka lub wykonywany jest skrypt powloki. PATH Sciezka wyszukiwania polecen. Jest to lista rozdzielanych dwukropkami katalogow, w ktorych powloka szuka polecen (zobacz WYKONYWANIE POLECEN ponizej). Nazwa katalogu zerowej dlugosci (pusta) oznacza katalog biezacy. Pusty katalog mozna podac jako dwa zlaczone dwukropki lub poczatkowy albo koncowy dwukropek. Domyslna sciezka zalezy od systemu i ustawiana jest przez administratora instalujacego bash. Powszechna wartoscia jest ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''. POSIXLY_CORRECT Jesli podczas uruchamiania bash w srodowisku istnieje ta zmienna, to powloka przed odczytem plikow startowych wchodzi w tryb posix, tak jakby przy jej wywolaniu podano opcje --posix. Jesli zmienna ta zostanie ustawiona podczas pracy powloki, to bash wlacza tryb posix, tak jakby zostalo wykonane polecenie set -o posix Gdy powloka wchodzi w tryb posix, ustawia te zmienna, jesli nie byla ona jeszcze ustawiona. PROMPT_COMMAND Jesli zmienna ta jest ustawiona i jest tablica, wartosc kazdego z elementow jest wykonywana jako polecenie, przed wydaniem kazdej podstawowej zachety. Jesli jest ustawiona, lecz nie jest zmienna tablicowa, jej wartosc jest traktowania jako polecenie do wykonania. PROMPT_DIRTRIM Gdy jest ustawiona na liczbe wieksza od zera, jej wartosc jest uzywana jako liczba poczatkowych skladowych katalogow do usuniecia podczas interpretowania sekwencji specjalnych lancucha zachety \w i \W (patrz ponizej ZACHETA POWLOKI). Usuwane znaki sa zastepowane wielokropkiem. PS0 Wartosc tego parametru jest interpretowana (zobacz ponizej ZACHETA) i wyswietlana przez powloke interaktywna po odczytaniu polecenia, a przed jego wykonaniem. PS1 Wartosc tego parametru jest interpretowana (zobacz ponizej ZACHETA) i uzywana jako glowny lancuch zachety. Jego wartoscia domyslna jest "\s-\v\$ ". PS2 Wartosc tego parametru jest interpretowana jak PS1 i uzywana jako wtorny (secondary) lancuch zachety. Domyslnie jest to "> ". PS3 Wartosc tego parametru sluzy jako zacheta w poleceniu select (zobacz powyzej GRAMATYKA POWLOKI). PS4 The value of this parameter is expanded as with PS1 and the value is printed before each command bash displays during an execution trace. The first character of the expanded value of PS4 is replicated multiple times, as necessary, to indicate multiple levels of indirection. The default is "+ ". SHELL This variable expands to the full pathname to the shell. If it is not set when the shell starts, bash assigns to it the full pathname of the current user's login shell. TIMEFORMAT Wartosc tego parametru sluzy jako lancuch formatu okreslajacego, jak powinna byc wyswietlana informacja o czasach dla potokow poprzedzonych slowem zastrzezonym time. Znak % rozpoczyna sekwencje specjalna, ktora jest interpretowana jako wartosc czasu lub inna informacja. Sekwencje specjalne i ich znaczenie sa nastepujace; nawiasy kwadratowe opisuja czesci opcjonalne. %% Doslowny znak %. %[p][l]R Czas, jaki uplynal, w sekundach. %[p][l]U Liczba sekund, jakie CPU zuzyl w trybie uzytkownika. %[p][l]S Liczba sekund, jakie CPU zuzyl w trybie systemowym. %P Procent wykorzystania CPU, liczony jako (%U + %S) / %R. Opcjonalne p jest cyfra okreslajaca dokladnosc (precision), liczbe cyfr ulamkowych po kropce dziesietnej. Wartosc zero powoduje, ze nie bedzie wyswietlana ani kropka dziesietna ani czesc ulamkowa. Moga byc podane co najwyzej trzy miejsca po kropce dziesietnej; wartosci p wieksze od 3 zmieniane sa na 3. Jezeli nie podano p, to uzywana jest wartosc 3. Opcjonalne l okresla dluzszy (longer) format wynikow, zawierajacy minuty, w postaci MMmSS.FFs. O tym, czy wystepuje ulamkowa czesc sekund decyduje wartosc p. Jezeli zmienna ta nie jest ustawiona, to bash dziala tak, jakby miala ona wartosc $'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'. Jezeli jej wartoscia jest pusty lancuch, to nie jest wyswietlana zadna informacja o czasach (timing). Podczas wyswietlania lancucha formatu dodawany jest konczacy znak nowej linii. TMOUT Jesli ustawione na wartosc wieksza od zera, to TMOUT jest interpretowane jako domyslny czas oczekiwania wbudowanego read. Polecenie select konczy sie, jesli dane nie zostana wprowadzone po liczbie TMOUT sekund, jezeli wejscie pochodzi z terminala. W przypadku powlok interaktywnych, wartosc jest interpretowana jako liczba sekund okreslajaca czas, przez jaki powloka ma czekac na wprowadzenie wiersza danych po wyswietleniu glownej zachety. Bash konczy prace po odczekaniu tego czasu jesli pelen wiersz danych nie pojawil sie. TMPDIR Jesli jest ustawiona, bash uzywa jej wartosci jako nazwy katalogu w ktorym tworzy pliki tymczasowe do uzytku powloki. auto_resume Zmienna ta steruje sposobem interakcji powloki z uzytkownikiem i sposobem kontroli zadan. Jezeli jest ustawiona, to jednowyrazowe polecenia proste bez przekierowan traktowane sa jako aspirujace do wznowienia istniejacego zatrzymanego zadania. Nie pozwala sie na zadna dwuznacznosc; jesli jest wiecej niz jedno zadanie rozpoczynajace sie od wpisanego lancucha, wybierane jest zadanie, do ktorego ostatnio siegano. Nazwa zatrzymanego zadania, w tym kontekscie, jest wierszem polecen uzytym do jego uruchomienia. Jesli posiada wartosc exact, to podany lancuch musi pasowac dokladnie do nazwy zatrzymanego zadania; Jesli jest ustawione na substring, to podany lancuch powinien pasowac do podlancucha nazwy zatrzymanego zadania. Wartosc substring zapewnia funkcjonalnosc analogiczna do identyfikatora zadania %? (zobacz STEROWANIE ZADANIAMI ponizej). Jesli ustawiono inna wartosc, to podany lancuch musi byc przedrostkiem nazwy zatrzymanego zadania; zapewnia to funkcjonalnosc analogiczna do identyfikatora zadania %. histchars Dwa lub trzy znaki sterujace interpretacja historii i podzialem na leksemy (zobacz ponizej INTERPRETACJA HISTORII). Pierwszy znak jest znakiem interpretacji historii, sygnalizujacym poczatek interpretacji historii, zwykle `!'. Drugi znak jest znakiem szybkiego podstawiania, ("quick substitution"), sluzacym jako skrot do powtornego uruchamiania poprzednio wprowadzonego polecenia, podstawiajacym w poleceniu jeden lancuch za inny. Domyslnym znakiem szybkiego podstawiania jest `^'. Opcjonalny, trzeci znak jest znakiem wskazujacym, ze pozostala czesc wiersza, w ktorym wystepuje on jako pierwszy znak slowa, jest komentarzem. Zwykle znakiem tym jest `#'. Znak komentarza historii powoduje, ze dla pozostalych slow wiersza podstawianie historii jest pomijane. Niekoniecznie powoduje to traktowanie reszty wiersza jako komentarza przez analizator skladni powloki. Tablice Bash udostepnia indeksowane i asocjacyjne zmienne tablicowe jednowymiarowe. Jako tablica moze zostac uzyta dowolna zmienna; wbudowane declare jawnie zadeklaruje tablice. Nie ma maksymalnego rozmiaru tablic, ani wymagania, by wszystkie jej elementy byly indeksowane czy przypisywane w sposob ciagly. Do tablic indeksowanych mozna sie odwolac przy pomocy liczb calkowitych (w tym wyrazen arytmetycznych), poczawszy od zera; natomiast tablice asocjacyjne uzywaja konkretnych lancuchow. Jesli nie zaznaczono inaczej, indeksy tablic indeksowanych musza byc nieujemnymi liczbami calkowitymi. Tablica indeksowana tworzona jest automatycznie jesli wykonywane jest przypisanie do jakiejs zmiennej przy pomocy skladni nazwa[wskaznik]=wartosc. Wskaznik tablicy traktowany jest jako wyrazenie arytmetyczne, ktore musi po interpretacji dac liczbe. Chcac jawnie zadeklarowac tablice indeksowana, uzyj declare -a nazwa (zobacz WBUDOWANE POLECENIA POWLOKI ponizej). declare -a nazwa[wskaznik] jest rowniez akceptowane; wskaznik jest wowczas ignorowany. Tablice asocjacyjne sa tworzone za pomoca konstrukcji declare -A nazwa. Atrybuty moga byc podane do zmiennej tablicy przy uzyciu declare i readonly. Kazdy z atrybutow stosowany jest do wszystkich elementow tablicy. Arrays are assigned to using compound assignments of the form name=(value1 ... valuen), where each value may be of the form [subscript]=string. Indexed array assignments do not require anything but string. Each value in the list is expanded using all the shell expansions described below under EXPANSION. When assigning to indexed arrays, if the optional brackets and subscript are supplied, that index is assigned to; otherwise the index of the element assigned is the last index assigned to by the statement plus one. Indexing starts at zero. When assigning to an associative array, the words in a compound assignment may be either assignment statements, for which the subscript is required, or a list of words that is interpreted as a sequence of alternating keys and values: name=( key1 value1 key2 value2 ...). These are treated identically to name=( [key1]=value1 [key2]=value2 ...). The first word in the list determines how the remaining words are interpreted; all assignments in a list must be of the same type. When using key/value pairs, the keys may not be missing or empty; a final missing value is treated like the empty string. Skladnia ta jest akceptowana takze przy poleceniu wbudowanym declare. Pojedyncze elementy tablicy mozna przypisac za pomoca skladni nazwa[wskaznik]=wartosc wprowadzonej powyzej. Jesli wskaznik da po interpretacji liczbe mniejsza od zera, to jest uzywany jako przesuniecie od maksymalnego indeksu tablicy plus jeden (wskaznik -1 odnosi sie wiec do ostatniego elementu tablicy). The += operator will append to an array variable when assigning using the compound assignment syntax; see PARAMETERS above. Do elementu tablicy mozna odwolywac sie uzywajac ${nazwa[wskaznik]}. Nawiasy sa wymagane, by uniknac konfliktow z rozwijaniem nazw plikow. Jesli wskaznikiem jest @ lub *, to powyzsze slowo interpretowane jest jako wszystkie elementy nazwy. Wskazniki te roznia sie tylko wtedy, gdy slowo pojawia sie w cudzyslowach. Jesli slowo ujeto w cudzyslowy, to ${nazwa[*]} interpretowane jest jako pojedyncze slowo o wartosci wszystkich elementow tablicy rozdzielonych pierwszym znakiem zmiennej specjalnej IFS, zas ${nazwa[@]} interpretuje kazdy z elementow nazwa jako odrebne slowo. Jesli brak jest elementow tablicy, to ${nazwa[@]} interpretowane jest jako nic. Jesli wewnatrz slowa zachodzi interpretacja (ujeta w cudzyslowy), to pierwszy zinterpretowany parametr jest laczony z poczatkiem oryginalnego slowa, a interpretacja ostatniego parametru jest laczona z koncem oryginalnego slowa. Jest to zachowanie analogiczne do interpretacji parametrow specjalnych * i @ (zobacz powyzej Parametry specjalne). ${#nazwa[wskaznik]} interpretowane jest jako dlugosc ${nazwa[wskaznik]}. Jesli wskaznikiem jest * lub @, to interpretacja jest liczba elementow w tablicy. Jesli wskaznik da po interpretacji liczbe mniejsza od zera, to jest uzywany jako przesuniecie od maksymalnego indeksu tablicy plus jeden (wskaznik -1 odnosi sie wiec do ostatniego elementu tablicy). Odwolywanie sie do zmiennej tablicowej bez podania wskaznika jest rownowazne odwolaniu do elementu numer zero. Kazde odwolanie do zmiennej przy podaniu prawidlowego wskaznika jest poprawne; bash utworzy tablice jesli bedzie to konieczne. Zmienna tablicowa jest ustawiona, jesli do wskaznika przypisano wartosc. Lancuch pusty jest poprawna wartoscia. Mozna pozyskac zarowno Klucze (wskazniki) tablicy jak i wartosci. ${!nazwa[@]} i ${!nazwa[*]} sa interpretowane jako wskazniki przypisane do zmiennej nazwa tablicy. expand to the indices assigned in array variable name. Gdy zastosowany jest cudzyslow, powloka zachowuje sie podobnie jak w przypadku interpretacji specjalnych parametrow @ i * w cudzyslowach. The unset builtin is used to destroy arrays. unset name[subscript] destroys the array element at index subscript, for both indexed and associative arrays. Negative subscripts to indexed arrays are interpreted as described above. Unsetting the last element of an array variable does not unset the variable. unset name, where name is an array, removes the entire array. unset name[subscript], where subscript is * or @, behaves differently depending on whether name is an indexed or associative array. If name is an associative array, this unsets the element with subscript * or @. If name is an indexed array, unset removes all of the elements but does not remove the array itself. When using a variable name with a subscript as an argument to a command, such as with unset, without using the word expansion syntax described above, the argument is subject to pathname expansion. If pathname expansion is not desired, the argument should be quoted. Kazde z wbudowanych declare, local i readonly akceptuje opcje -a do okreslania tablic indeksowanych i opcje -A do okreslania tablic asocjacyjnych. Jesli podano obie opcje, to pierwszenstwo ma -A. Polecenie read akceptuje opcje -a do przypisywania tablicy listy slow przeczytanych ze standardowego wejscia. set i declare wyswietlaja wartosci tablicowe w sposob umozliwiajacy ponowne ich uzycie w przypisaniach. INTERPRETACJA Interpretacja wykonywana jest na wierszu polecen po jego podziale na slowa. Istnieje siedem rodzajow wykonywanych interpretacji: interpretacja nawiasow (brace expansion), interpretacja tyld (tilde expansion), podstawianie parametrow i interpretacja zmiennych (parameter and variable expansion), podstawienie wynikow polecen (command substitution), interpretacja wyrazen arytmetycznych (arithmetic expansion), podzial na slowa (word splitting) i rozwiniecie nazw plikow (pathname expansion). Kolejnosc interpretacji: interpretacja nawiasow, interpretacja tyld, interpretacja parametrow i zmiennych, interpretacja wyrazen arytmetycznych i podstawianie wynikow polecen (wykonywane od lewej do prawej), podzial na slowa i rozwijanie nazw sciezek. Na systemach potrafiacych to obsluzyc, istnieje dodatkowa dostepna interpretacja: podstawienie wynikow procesow (process substitution). Jest to przeprowadzane w tym samym czasie, jak interpretacja tyld, parametrow, zmiennych i wyrazen arytmetycznych oraz polecen. Po przeprowadzeniu tych interpretacji znaki cytowania obecne w pierwotnym slowie sa usuwane, chyba ze same zostaly zacytowane (usuniecie cytowan). Only brace expansion, word splitting, and pathname expansion can increase the number of words of the expansion; other expansions expand a single word to a single word. The only exceptions to this are the expansions of "$@" and "${name[@]}", and, in most cases, $* and ${name[*]} as explained above (see PARAMETERS). Interpretacja nawiasow Interpretacja nawiasow jest mechanizmem, przez ktory moga byc generowane dowolne lancuchy. Mechanizm ten przypomina rozwiniecia nazw plikow, ale generowane nazwy plikow nie musza okreslac plikow istniejacych. Wzorce, majace podlegac interpretacji nawiasow maja postac opcjonalnej preambuly, po ktorej wystepuja serie separowanych przecinkami lancuchow pomiedzy para nawiasow klamrowych, po ktorych nastepuje opcjonalny dopisek (postscript). Preambula stanowi przedrostek dla kazdego z lancuchow zawartych w nawiasach, a dopisek dodawany jest do kazdego lancucha wynikowego, przy interpretacji od lewej do prawej. Interpretacja nawiasow moze byc zagniezdzana. Wyniki kazdego zinterpretowanego lancucha nie sa sortowane; zachowywana jest kolejnosc od lewej do prawej. Na przyklad, a{d,c,b}e interpretowane jest jako "ade ace abe". A sequence expression takes the form {x..y[..incr]}, where x and y are either integers or single letters, and incr, an optional increment, is an integer. When integers are supplied, the expression expands to each number between x and y, inclusive. Supplied integers may be prefixed with 0 to force each term to have the same width. When either x or y begins with a zero, the shell attempts to force all generated terms to contain the same number of digits, zero-padding where necessary. When letters are supplied, the expression expands to each character lexicographically between x and y, inclusive, using the default C locale. Note that both x and y must be of the same type (integer or letter). When the increment is supplied, it is used as the difference between each term. The default increment is 1 or -1 as appropriate. Interpretacja nawiasow wykonywana jest przed innymi rodzajami interpretacji, a znaki o specjalnym znaczeniu dla innych interpretacji sa zachowywane w wyniku. Jest scisle tekstowa. Bash nie stosuje zadnej interpretacji skladniowej do kontekstu interpretacji czy tekstu pomiedzy nawiasami. A correctly-formed brace expansion must contain unquoted opening and closing braces, and at least one unquoted comma or a valid sequence expression. Any incorrectly formed brace expansion is left unchanged. A { or , may be quoted with a backslash to prevent its being considered part of a brace expression. To avoid conflicts with parameter expansion, the string ${ is not considered eligible for brace expansion, and inhibits brace expansion until the closing }. Typowym zastosowaniem tej konstrukcji jest skrot, wtedy gdy wspolny przedrostek lancuchow do utworzenia jest dluzszy niz w powyzej podanym przykladzie, np.: mkdir /usr/local/src/bash/{old,new,dist,bugs} lub chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}} Interpretacja nawiasow wprowadza niewielka niezgodnosc z historycznymi wersjami sh. sh nie traktuje nawiasow otwierajacych i zamykajacych w specjalny sposob gdy pojawiaja sie one jako czesc slowa, i zachowuje je w wyniku. W bash konsekwencja interpretacji nawiasow jest usuwanie nawiasow ze slow. Na przyklad, slowo wprowadzone do sh jako plik{1,2} pojawi sie w identycznej postaci na wyjsciu. To samo slowo po interpretacji przez bash daje plik1 plik2. Jezeli pozadana jest scisla zgodnosc z sh, uruchom bash z opcja +B lub wylacz interpretacje nawiasow przy pomocy opcji +B polecenia set (zobacz WBUDOWANE POLECENIA POWLOKI ponizej). Interpretacja tyldy Jezeli slowo rozpoczyna sie niecytowanym znakiem tyldy (`~'), to wszystkie znaki poprzedzajace pierwszy niecytowany ukosnik (lub wszystkie znaki, gdy nie ma ukosnika) uwazane sa za przedrostek tyldy (tilde-prefix). Jezeli zaden ze znakow w przedrostku tyldy nie jest cytowany, to jego znaki nastepujace po znaku tyldy traktowane sa jako mozliwa nazwa logowania (login name). Jesli ta nazwa logowania jest lancuchem pustym, to tylda zastepowana jest wartoscia parametru powloki HOME. Jezeli HOME nie jest ustawione, to podstawiany jest za nie katalog domowy uzytkownika uruchamiajacego powloke. W przeciwnym wypadku, przedrostek tyldy zastepowany jest katalogiem domowym skojarzonym z okreslona nazwa logowania. Jesli przedrostkiem tyldy jest `~+', to jest on zastepowany wartoscia zmiennej PWDpowloki. Jesli przedrostkiem tyldy jest `~-', to jest on zastepowany wartoscia zmiennej powloki OLDPWD, jesli jest ona ustawiona. Jezeli wystepujace w przedrostku po tyldzie znaki skladaja sie z liczby N, opcjonalnie poprzedzonej przez `+' lub `-', to przedrostek tyldy zastepowany jest odpowiednim elementem stosu katalogow, jaki zostalby wyswietlony przez wbudowane dirs, wywolane z przedrostkiem tyldy jako argumentem. Jezeli w przedrostku tyldy znaki wystepujace po tyldzie skladaja sie z liczby bez poczatkowego `+' lub `-', to przyjmowane jest `+'. Jesli nazwa logowania jest nieprawidlowa lub interpretacja tyldy nie powiodla sie, to slowo z tylda pozostaje niezmienione. Kazde z przypisan do zmiennej sprawdzane jest na obecnosc niecytowanych przedrostkow tyldy wystepujacych bezposrednio po : lub =. W tych przypadkach rowniez jest wykonywana jest interpretacja tyldy. Na skutek tego, mozna poslugiwac sie nazwami plikow z tyldami w przypisaniach do PATH, MAILPATH i CDPATH, a powloka przypisze zinterpretowana wartosc. Bash also performs tilde expansion on words satisfying the conditions of variable assignments (as described above under PARAMETERS) when they appear as arguments to simple commands. Bash does not do this, except for the declaration commands listed above, when in posix mode. Podstawianie parametrow Znak `$' wprowadza podstawianie parametrow, podstawianie wynikow polecen i interpretacje wyrazen arytmetycznych. Podlegajaca interpretacji nazwa parametru lub symbol moga byc ujete w nawiasy klamrowe, ktore sa opcjonalne, ale sluza do ochrony interpretowanej zmiennej przed znakami, jakie wystepuja bezposrednio po niej, a ktore moglyby zostac zinterpretowane jako czesc nazwy. Gdy uzywane sa nawiasy, pasujacym nawiasem konczacym jest pierwszy `}', nie chroniony przez odwrotny ukosnik, nie znajdujacy sie wewnatrz cytowanego lancucha ani nie osadzony w wyrazeniu arytmetycznym, podstawieniu wyniku polecenia czy podstawieniu parametru. ${parametr} Podstawiana jest wartosc parametru. Nawiasy wymagane sa gdy parametr jest parametrem pozycyjnym o wiecej niz jednej cyfrze, lub gdy po parametrze wystepuje znak, ktory nie powinien byc interpretowany jako czesc jego nazwy. Parametr jest parametrem powloki opisanych powyzej PARAMETRY lub odniesieniem do tablicy (Tablice). If the first character of parameter is an exclamation point (!), and parameter is not a nameref, it introduces a level of indirection. Bash uses the value formed by expanding the rest of parameter as the new parameter; this is then expanded and that value is used in the rest of the expansion, rather than the expansion of the original parameter. This is known as indirect expansion. The value is subject to tilde expansion, parameter expansion, command substitution, and arithmetic expansion. If parameter is a nameref, this expands to the name of the parameter referenced by parameter instead of performing the complete indirect expansion. The exceptions to this are the expansions of ${!prefix*} and ${!name[@]} described below. The exclamation point must immediately follow the left brace in order to introduce indirection. W kazdym z ponizszych przypadkow, slowo podlega interpretacji tyldy, podstawianiu parametrow, podstawianiu wynikow polecen i interpretacji wyrazen arytmetycznych. Gdy nie przeprowadza interpretacji podlancuchow, za pomoca opisanych ponizej formul (np. :-) bash sprawdza czy parametr nie jest pusty lub nieustawiony. Pominiecie dwukropka skutkuje sprawdzeniem jedynie tego, czy parametr nie jest nieustawiony. ${parametr:-slowo} Uzywa wartosci domyslnych. Jezeli parametr jest nieustawiony lub pusty, to podstawiane jest zinterpretowane slowo. W przeciwnym razie, podstawiana jest wartosc parametru. ${parametr:=slowo} Przypisuje wartosci domyslne. Jezeli parametr jest nieustawiony lub pusty, to jest mu przypisywane zinterpretowane slowo. Nastepnie podstawiana jest wartosc parametru. Nie mozna w ten sposob przypisywac wartosci parametrom pozycyjnym ani parametrom specjalnym. ${parametr:?slowo} Wyswietla blad jesli pusty lub nieustawiony. Jezeli parametr jest nieustawiony lub pusty, to na standardowe wyjscie bledow zapisywane jest zinterpretowane slowo (lub komunikat o takim wyniku, jesli brak slowa). Jesli powloka nie jest interaktywna, to konczy prace. W przeciwnym wypadku, podstawiana jest wartosc parametru. ${parametr:+slowo} Uzywa wartosci alternatywnej. Jezeli parametr jest nieustawiony lub pusty, to nic nie jest podstawiane, w przeciwnym razie podstawiane jest zinterpretowane slowo. ${parametr:przesuniecie} ${parametr:przesuniecie:dlugosc} Interpretacja podlancuchow. Interpretuje do dlugosci znakow wartosci parametru, poczynajac od znaku okreslonego przesunieciem. Jesli parametrem jest @ lub *, tablica indeksowana ze wskaznikiem @ lub * lub nazwa tablicy asocjacyjnej, wynik rozni sie, zgodnie z ponizszym opisem. Jesli nie poda sie dlugosci, to interpretuje podlancuch wartosci parametru poczynajac od znaku okreslonego przesunieciem i konczac z koncem wartosci. Dlugosc i przesuniecie sa wyrazeniami arytmetycznymi (zob. OBLICZANIE WYRAZEN ARYTMETYCZNYCH ponizej). Jesli przesuniecie wyniesie mniej niz zero, wartosc jest uzywana jako przesuniecie w znakach od konca wartosci parametru. Jesli dlugosc wyniesie mniej niz zero, jest interpretowana jako przesuniecie w znakach od konca wartosci parametru, a nie jako liczba znakow, a interpretacja bedzie dotyczyc znakow pomiedzy przesunieciem i tym wynikiem. Prosze zauwazyc, ze ujemne przesuniecie musi byc oddzielone od dwukropka przynajmniej jedna spacja aby zapobiec pomyleniu z wyrazeniem :-. Jesli parametrem jest @ lub *, to wynikiem jest dlugosc parametrow pozycyjnych poczynajac od przesuniecia. Ujemne przesuniecie jest liczone w odniesieniu do parametru o jeden wiecej niz najwiekszy parametr pozycyjny, wiec przesuniecie -1 jest interpretowane jako ostatni parametr pozycyjny. Jesli dlugosc bedzie mniejsza od zera wystapi blad interpretacji. Jesli parametr jest nazwa tablicy indeksowanej z wskaznikiem @ lub *, to wynikiem jest dlugosc elementow tablicy poczynajac od ${parametr[przesuniecie]}. Jesli wskaznik da po interpretacji liczbe mniejsza od zera, to jest uzywany jako przesuniecie od maksymalnego indeksu tablicy plus jeden. Jesli dlugosc bedzie mniejsza od zera wystapi blad interpretacji. Interpretacja podlancucha zastosowana do tablicy asocjacyjnej da w wyniku niezdefiniowany rezultat. Indeksowanie podlancuchow zaczyna sie od zera, chyba ze uzywane sa parametry pozycyjne, wowczas indeksy liczy sie domyslnie od 1. Jesli przesuniecie wyniesie 0 i uzyje sie parametrow pozycyjnych, do listy wlacza sie na poczatku $0. ${!przedrostek*} ${!przedrostek@} Nazywa pasujacy przedrostek. Rozwija sie w liste nazw tych zmiennych, ktorych nazwy rozpoczynaja sie od przedrostka, rozdzielonych od siebie pierwszym znakiem zmiennej specjalnej IFS. Jesli uzywane jest @, a interpretacja jest ujeta w cudzyslowy, to kazda nazwa zmiennej jest interpretowana jako oddzielne slowo. ${!nazwa[@]} ${!nazwa[*]} Lista kluczy z tablicy. Jesli nazwa jest zmienna tablicowa, jest rozwijana do listy wskaznikow (kluczy) tablicowych przypisanych do nazwy. Jesli nazwa nie jest tablica, interpretowana jest do 0, jesli nazwa jest ustawiona lub pozostaje pusta w przeciwnym wypadku. Gdy uzywane jest !, a interpretacja jest ujeta w cudzyslowy, kazdy klucz jest rozwijany do oddzielnego slowa. ${#parametr} Dlugosc parametru. Podstawiana jest dlugosc, w znakach, wartosci parametru. Jezeli parametrem jest * lub @, wartosc podstawiana jest liczba parametrow pozycyjnych. Jezeli parametr jest nazwa tablicy o indeksowanej przez * lub @, wartosc podstawiana jest liczba elementow tablicy. ${parametr#slowo} ${parametr##slowo} Remove matching prefix pattern. The word is expanded to produce a pattern just as in pathname expansion, and matched against the expanded value of parameter using the rules described under Pattern Matching below. If the pattern matches the beginning of the value of parameter, then the result of the expansion is the expanded value of parameter with the shortest matching pattern (the "#" case) or the longest matching pattern (the "##" case) deleted. If parameter is @ or *, the pattern removal operation is applied to each positional parameter in turn, and the expansion is the resultant list. If parameter is an array variable subscripted with @ or *, the pattern removal operation is applied to each member of the array in turn, and the expansion is the resultant list. ${parametr%slowo} ${parametr%%slowo} Remove matching suffix pattern. The word is expanded to produce a pattern just as in pathname expansion, and matched against the expanded value of parameter using the rules described under Pattern Matching below. If the pattern matches a trailing portion of the expanded value of parameter, then the result of the expansion is the expanded value of parameter with the shortest matching pattern (the "%" case) or the longest matching pattern (the "%%" case) deleted. If parameter is @ or *, the pattern removal operation is applied to each positional parameter in turn, and the expansion is the resultant list. If parameter is an array variable subscripted with @ or *, the pattern removal operation is applied to each member of the array in turn, and the expansion is the resultant list. ${parametr/wzorzec/lancuch} ${parametr//wzorzec/lancuch} ${parametr/#wzorzec/lancuch} ${parametr/%wzorzec/lancuch} Pattern substitution. The pattern is expanded to produce a pattern just as in pathname expansion. Parameter is expanded and the longest match of pattern against its value is replaced with string. string undergoes tilde expansion, parameter and variable expansion, arithmetic expansion, command and process substitution, and quote removal. The match is performed using the rules described under Pattern Matching below. In the first form above, only the first match is replaced. If there are two slashes separating parameter and pattern (the second form above), all matches of pattern are replaced with string. If pattern is preceded by # (the third form above), it must match at the beginning of the expanded value of parameter. If pattern is preceded by % (the fourth form above), it must match at the end of the expanded value of parameter. If the expansion of string is null, matches of pattern are deleted. If string is null, matches of pattern are deleted and the / following pattern may be omitted. If the patsub_replacement shell option is enabled using shopt, any unquoted instances of & in string are replaced with the matching portion of pattern. Quoting any part of string inhibits replacement in the expansion of the quoted portion, including replacement strings stored in shell variables. Backslash will escape & in string; the backslash is removed in order to permit a literal & in the replacement string. Backslash can also be used to escape a backslash; \\ results in a literal backslash in the replacement. Users should take care if string is double-quoted to avoid unwanted interactions between the backslash and double-quoting, since backslash has special meaning within double quotes. Pattern substitution performs the check for unquoted & after expanding string; shell programmers should quote any occurrences of & they want to be taken literally in the replacement and ensure any instances of & they want to be replaced are unquoted. If the nocasematch shell option is enabled, the match is performed without regard to the case of alphabetic characters. If parameter is @ or *, the substitution operation is applied to each positional parameter in turn, and the expansion is the resultant list. If parameter is an array variable subscripted with @ or *, the substitution operation is applied to each member of the array in turn, and the expansion is the resultant list. ${parametr^wzorzec} ${parametr^^wzorzec} ${parametr,wzorzec} ${parametr,,wzorzec} Modyfikacja wielkosci znakow. Ta interpretacja modyfikuje wielkosc zawartych liter zgodnie z parametrem. Wzorzec jest interpretowany w taki sposob, jak czyni to rozwijanie nazw plikow. Kazdy znak w interpretowanej wartosci parametru jest sprawdzany ze wzorcem i jesli do niego pasuje, wielkosc litery jest zmieniana. Wzorzec nie powinien dopasowywac wiecej niz jednego znaku. Operator ^ konwertuje male litery pasujace do wzorca na wielkie, operator , dziala odwrotnie. ^^ i ,, konwertuja kazdy dopasowany znak interpretowanej wartosci, natomiast ^ i , konwertuja jedynie jej pierwszy znak. Jesli nie podano wzorca, to przyjmuje sie za niego ?, co powoduje dopasowanie kazdego znaku. Jesli parametrem jest @ lub *, to operacja podstawiania stosowana jest do kazdego po kolei parametru pozycyjnego, zas wynikiem interpretacji jest powstala lista. Jesli parametr jest zmienna tablicowa indeksowana przez @ lub *, operacja podstawiania jest przeprowadzana po kolei na kazdym elemencie tablicy, zas wynikiem interpretacji jest powstala lista. ${parametr@operator} Przeksztalcenie parametrow. Ta interpretacja jest albo przeksztalceniem wartosci parametrow, albo informacji o samych parametrach, w zaleznosci od wartosci operatora. Kazdy operator jest pojedyncza litera: U The expansion is a string that is the value of parameter with lowercase alphabetic characters converted to uppercase. u The expansion is a string that is the value of parameter with the first character converted to uppercase, if it is alphabetic. L The expansion is a string that is the value of parameter with uppercase alphabetic characters converted to lowercase. Q Interpretacja jest lancuch bedacy wartoscia parametru cytowany w formacie, jaki moze byc ponownie wykorzystany jako wejscie powloki. E The expansion is a string that is the value of parameter with backslash escape sequences expanded as with the $'...' quoting mechanism. P Interpretacja jest lancuch bedacy wartoscia parametru taka, jaka bylby jako lancuch zachety (zob. ponizej ZACHETA). A Interpretacja jest lancuch w postaci z jaka instrukcja przypisania lub polecenie declare przy interpretacji odtworzyla by parametr z jego atrybutami i wartoscia. K Produces a possibly-quoted version of the value of parameter, except that it prints the values of indexed and associative arrays as a sequence of quoted key-value pairs (see Arrays above). a Interpretacja jest lancuch skladajacy sie z wartosci flag reprezentujacych atrybuty parametru. k Like the K transformation, but expands the keys and values of indexed and associative arrays to separate words after word splitting. Jezeli parametrem jest @ lub *, to operacja stosowana jest do kazdego po kolei parametru pozycyjnego, zas wynikiem interpretacji jest powstala lista. Jesli parametr jest zmienna tablicowa indeksowana przez @ lub *, to operacja jest przeprowadzana po kolei na kazdym elemencie tablicy, zas wynikiem interpretacji jest powstala lista. Na wyniku interpretacji jest przeprowadzany podzial na slowa oraz rozwiniecie nazw plikow zgodnie z opisem ponizej. Podstawianie wynikow polecen Podstawianie wynikow polecen (command substitution) pozwala na zastepowanie nazwy polecenia wyjsciem (wynikiem) z jego dzialania. Posiada dwie postaci: $(polecenie) lub `polecenie` Bash wykonuje interpretacje wykonujac polecenie w srodowisku podpowloki i zastepujac podstawiane polecenie jego utworzonym standardowym wyjsciem, z usunietymi koncowymi znakami nowej linii. Zawarte wewnatrz wyniku znaki nowej linii nie sa usuwane, ale moga byc usuniete podczas podzialu na slowa. Podstawienie wyniku polecenia $(cat plik) mozna zastapic rownowaznym, ale szybszym $(< plik). Gdy uzywane jest podstawianie w starym stylu, z uzyciem odwrotnych apostrofow, odwrotny ukosnik zachowuje swe znaczenie doslowne, z wyjatkiem przypadkow, gdy jest poprzedzony przez $, ` lub \. Pierwszy odwrotny apostrof (`) nie poprzedzony odwrotnym ukosnikiem konczy podstawianie wyniku polecenia. Podczas poslugiwania sie postacia $(polecenie), polecenie tworza wszystkie znaki pomiedzy nawiasami; zaden nie jest traktowany specjalnie. Podstawianie wynikow polecen moze byc zagniezdzane. W celu zagniezdzenia postaci z odwrotnymi apostrofami zabezpiecz wewnetrzne przed interpretacja uzywajac odwrotnych ukosnikow. Jezeli podstawianie pojawia sie wewnatrz cudzyslowow, to na wynikach nie jest przeprowadzany podzial na slowa ani rozwiniecie nazw plikow. Interpretacja wyrazen arytmetycznych Interpretacja wyrazen arytmetycznych pozwala na obliczanie wyrazen arytmetycznych i podstawianie wyniku. Format interpretacji arytmetycznej: $((wyrazenie)) The expression undergoes the same expansions as if it were within double quotes, but double quote characters in expression are not treated specially and are removed. All tokens in the expression undergo parameter and variable expansion, command substitution, and quote removal. The result is treated as the arithmetic expression to be evaluated. Arithmetic expansions may be nested. Interpretacja przeprowadzana jest zgodnie z zasadami podanymi ponizej w sekcji OBLICZENIA ARYTMETYCZNE. Jezeli wyrazenie jest nieprawidlowe, bash wypisuje komunikat o niepowodzeniu i nie wystepuje zadne podstawienie. Podstawianie wynikow procesow (Process substitution) Podstawianie wynikow procesow pozwala na odnoszenie sie do wejscia lub wyjscia procesu za pomoca nazwy pliku. Przybiera ono postac <(lista) lub >(lista). Proces lista uruchamiany asynchronicznie, a jego wejscie i wyjscie pojawia sie jako nazwa pliku. W wyniku interpretacji nazwa tego pliku przesylana jest jako argument biezacego polecenia. Jezeli posluzono sie postacia >(lista), zapis do pliku bedzie stanowic wejscie dla listy. Jezeli posluzono sie postacia <(lista), plik przekazany jako argument powinien zostac odczytany w celu uzyskania wyjscia listy. Podstawianie wynikow procesow jest obslugiwane w systemach wspierajacych potoki nazwane (FIFO) lub metode nazywania otwartych plikow /dev/fd. Gdy jest to mozliwe, podstawianie wynikow procesu wykonywane jest rownoczesnie z interpretacja parametrow i zmiennych, podstawianiem wynikow polecen i interpretacja wyrazen arytmetycznych. Podzial na slowa Powloka przeszukuje wyniki interpretacji parametrow, podstawiania polecen i interpretacji wyrazen arytmetycznych, ktore nie pojawiaja sie wewnatrz cudzyslowow, w celu przeprowadzenia podzialu na slowa. Powloka traktuje kazdy znak IFS jak separator i dzieli na slowa wyniki innych interpretacji, uzywajac ich jako separatorow pol. Jezeli IFS nie jest ustawione lub jego wartoscia jest dokladnie , wartosc domyslna, to sekwencje skladajace sie ze , i na poczatku i koncu wynikow poprzednich interpretacji sa ignorowane, a do podzialu na slowa sluzy dowolna sekwencja znakow IFS, jezeli nie znajduje sie na poczatku lub koncu. Jezeli IFS posiada wartosc inna niz domyslna, to sekwencje bialych znakow spacji i tabulacji i znaku nowego wiersza sa ignorowane na poczatku i koncu slowa, dopoki bialy znak wystepuje w wartosci IFS (bialy znak IFS). Inne znaki w IFS nie bedace bialymi znakami IFS, lacznie z dowolnymi przyleglymi bialymi znakami IFS, ograniczaja pole. Sekwencja bialych znakow IFS jest rowniez traktowana jako ogranicznik. Jesli IFS jest lancuchem pustym, to nie wystepuje podzial na slowa. Jawnie puste argumenty ("" lub '') sa pozostawiane i przekazywane do polecen jako lancuchy puste. Niecytowane argumenty puste niejawnie, wynikajace z interpretacji parametrow nie posiadajacych wartosci, sa usuwane. Jesli parametr bez wartosci interpretowany jest wewnatrz cudzyslowow, to wynikiem jest argument pusty i jest on zachowywany i przekazywany do polecen jako lancuchy puste. Gdy cytowany pusty argument pojawi sie jako czesc slowa, ktorego interpretacja jest niepusta, pusty argument jest usuwany tj. slowo -d'' staje sie -d po przeprowadzeniu podzialu na slowa i usunieciu pustych argumentow. Zauwaz, ze jesli nie wystepuje interpretacja, to nie jest rowniez wykonywany podzial. Rozwijanie nazw plikow (Pathname Expansion) After word splitting, unless the -f option has been set, bash scans each word for the characters *, ?, and [. If one of these characters appears, and is not quoted, then the word is regarded as a pattern, and replaced with an alphabetically sorted list of filenames matching the pattern (see Pattern Matching below). If no matching filenames are found, and the shell option nullglob is not enabled, the word is left unchanged. If the nullglob option is set, and no matches are found, the word is removed. If the failglob shell option is set, and no matches are found, an error message is printed and the command is not executed. If the shell option nocaseglob is enabled, the match is performed without regard to the case of alphabetic characters. When a pattern is used for pathname expansion, the character "." at the start of a name or immediately following a slash must be matched explicitly, unless the shell option dotglob is set. In order to match the filenames "." and "..", the pattern must begin with "." (for example, ".?"), even if dotglob is set. If the globskipdots shell option is enabled, the filenames "." and ".." are never matched, even if the pattern begins with a ".". When not matching pathnames, the "." character is not treated specially. When matching a pathname, the slash character must always be matched explicitly by a slash in the pattern, but in other matching contexts it can be matched by a special pattern character as described below under Pattern Matching. See the description of shopt below under SHELL BUILTIN COMMANDS for a description of the nocaseglob, nullglob, globskipdots, failglob, and dotglob shell options. Do ograniczenia zestawu nazw plikow pasujacych do wzorca mozna wykorzystac zmienna powloki GLOBIGNORE. Jezeli GLOBIGNORE jest ustawione, kazda z pasujacych nazw plikow pasujaca rowniez do jednego ze wzorcow w GLOBIGNORE jest usuwana z listy dopasowan. Jesli ustawiona jest opcja nocaseglob, to dopasowanie do wzorcow w GLOBIGNORE jest dokonywane bez wzgledu na wielkosc znakow. Nazwy plikow "." i ".." sa zawsze ignorowane, nawet gdy GLOBIGNORE jest ustawione. Jednakze, ustawienie GLOBIGNORE skutkuje wlaczeniem opcji dotglob, tak ze beda dopasowywane wszystkie inne nazwy plikow rozpoczynajace sie od kropki. W celu uzyskania starego zachowania, ignorujacego nazwy zaczynajace sie ".", jednym ze wzorcow w GLOBIGNORE nalezy zrobic ".*". Opcja dotglob jest wylaczana, gdy kasowane jest GLOBIGNORE. Dopasowanie wzorcow honoruje ustawienia opcji powloki extglob. Dopasowanie wzorca Kazdy znak pojawiajacy sie we wzorcu, rozny od specjalnych znakow wzorca opisanych ponizej, dopasowuje sam siebie. Znak NUL nie moze wystapic we wzorcu. Odwrotny ukosnik cytuje nastepujacy po nim znak; sam ukosnik jest pomijany podczas dopasowania. Specjalne znaki wzorca musza byc cytowane, jezeli maja byc dopasowane doslownie. Specjalne znaki wzorca maja nastepujace znaczenie: * Dopasowuje dowolny lancuch, lacznie z lancuchem pustym. Jesli wlaczona jest opcja globstar powloki, a * jest uzyte w kontekscie rozwijania nazw plikow, to dwa zlaczone znaki * uzyte w pojedynczym wzorcu dopasuja wszystkie pliki wraz z zerem lub wiecej katalogow i podkatalogow. Jesli po dwoch gwiazdkach * wystapi ukosnik /, to dopasowane beda wylacznie katalogi i podkatalogi. ? Dopasowuje dowolny pojedynczy znak. [...] Matches any one of the enclosed characters. A pair of characters separated by a hyphen denotes a range expression; any character that falls between those two characters, inclusive, using the current locale's collating sequence and character set, is matched. If the first character following the [ is a ! or a ^ then any character not enclosed is matched. The sorting order of characters in range expressions, and the characters included in the range, are determined by the current locale and the values of the LC_COLLATE or LC_ALL shell variables, if set. To obtain the traditional interpretation of range expressions, where [a-d] is equivalent to [abcd], set value of the LC_ALL shell variable to C, or enable the globasciiranges shell option. A - may be matched by including it as the first or last character in the set. A ] may be matched by including it as the first character in the set. Wewnatrz [ i ], mozna podawac klasy znakow (character classes), uzywajac skladni [:klasa:], gdzie klasa jest jedna z ponizszych klas zdefiniowanych w standardzie POSIX: alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit Klasa znakow dopasowuje dowolny znak nalezacy do tej klasy. Klasa znakow word dopasowuje litery, cyfry i znak podkreslenia "_". Wewnatrz [ i ], mozna podac klase rownowaznosci, uzywajac skladni [=z=], ktora dopasowuje wszystkie znaki o tej samej wadze sortowania (zdefiniowana w biezacym ustawieniu locale) co znak z. Wewnatrz [ i ], skladnia [.symbol.] dopasowuje symbol sortowania (collating symbol) symbol. If the extglob shell option is enabled using the shopt builtin, the shell recognizes several extended pattern matching operators. In the following description, a pattern-list is a list of one or more patterns separated by a |. Composite patterns may be formed using one or more of the following sub-patterns: ?(lista-wzorcow) Dopasowuje zero lub jedno wystapienie zadanych wzorcow *(lista-wzorcow) Dopasowuje zero lub wiecej wystapien zadanych wzorcow +(lista-wzorcow) Dopasowuje jedno lub wiecej wystapien zadanych wzorcow @(lista-wzorcow) Dopasowuje jeden z zadanych wzorcow !(lista-wzorcow) Dopasowuje cokolwiek procz jednego z zadanych wzorcow Theextglob option changes the behavior of the parser, since the parentheses are normally treated as operators with syntactic meaning. To ensure that extended matching patterns are parsed correctly, make sure that extglob is enabled before parsing constructs containing the patterns, including shell functions and command substitutions. When matching filenames, the dotglob shell option determines the set of filenames that are tested: when dotglob is enabled, the set of filenames includes all files beginning with ".", but "." and ".." must be matched by a pattern or sub-pattern that begins with a dot; when it is disabled, the set does not include any filenames beginning with "." unless the pattern or sub-pattern begins with a ".". As above, "." only has a special meaning when matching filenames. Complicated extended pattern matching against long strings is slow, especially when the patterns contain alternations and the strings contain multiple matches. Using separate matches against shorter strings, or using arrays of strings instead of a single long string, may be faster. Usuniecie cytowan Po poprzednich interpretacjach, wszystkie niecytowane wystapienia znakow \, ' i ", ktore nie wynikly z jednej z powyzszych interpretacji, sa usuwane. PRZEKIEROWANIE Przed wykonaniem polecenia, jego wejscie i wyjscie moga zostac przekierowane przy pomocy specjalnej notacji interpretowanej przez powloke. Przekierowania pozwalaja deskryptorom plikow polecen na powielanie, otwieranie, zamykanie, tworzenie odniesien do roznych plikow oraz moga zmieniac pliki, ktore odczytuje polecenie i do ktorego pisze. Przekierowan mozna tez uzywac do modyfikowania deskryptorow plikow w srodowiska wykonywania biezacej powloki. Ponizsze operatory przekierowania moga wystepowac przed lub pojawiac sie gdziekolwiek wewnatrz polecenia prostego lub wystepowac po poleceniu. Przekierowania przetwarzane sa w kolejnosci wystepowania, od lewej do prawej. Kazde przekierowanie, ktore moze byc poprzedzone numerem deskryptora pliku, moze byc w zamian poprzedzone slowem zapisanym nastepujaco: {nazwa-zmiennej}. W takim przypadku, dla kazdego operatora przekierowania, z wyjatkiem >&- i <&-, powloka nada deskryptor pliku wiekszy lub rowny 10 i przypisze go do nazwy-zmiennej. Jesli >&- lub <&- jest poprzedzone {nazwa-zmiennej}, to wartosc nazwy-zmiennej definiuje deskryptor pliku przeznaczony do zamkniecia. Jesli poda sie {nazwe-zmiennej}, to przekierowanie bedzie istnialo poza zakresem polecenia, co pozwala na reczne zarzadzanie czasem istnienia deskryptora pliku przez programiste powloki. Za to zachowanie odpowiada opcja powloki varredir_close. W ponizszych opisach, jesli pominieto deskryptor pliku, a pierwszym znakiem operatora przekierowania jest <, przekierowanie dotyczy standardowego wejscia (deskryptor pliku 0). Jezeli pierwszym znakiem operatora przekierowania jest >, przekierowanie dotyczy standardowego wyjscia (deskryptor pliku 1). Slowo nastepujace do operatorze przekierowania w ponizszych opisach podlega, chyba ze podano inaczej, interpretacji nawiasow, interpretacji tyldy, interpretacji parametrow i zmiennych, podstawianiu wynikow polecen, interpretacji wyrazen arytmetycznych, usuwaniu cytowan, rozwijaniu nazw plikow i podzialowi na slowa. Jesli zinterpretowane zostanie jako wiecej niz jedno slowo, to bash zglosi blad. Zauwaz, ze kolejnosc przekierowan jest znaczaca. Na przyklad, polecenie ls > dirlist 2>&1 kieruje zarowno standardowe wyjscie jak i wyjscie diagnostyczne (stderr) do pliku dirlist, podczas gdy polecenie ls 2>&1 > dirlist kieruje tylko standardowe wyjscie do pliku dirlist, gdyz wyjscie bledow zostalo zduplikowane jako standardowe wyjscie przed przekierowaniem wyjscia do dirlist. Bash obsluguje wiele nazw plikow, szczegolnie wtedy, gdy sa one uzywane przy przekierowaniach, zgodnie z opisem w ponizszej tabeli. Jesli system operacyjny na ktorym dziala bash udostepnia te pliki specjalne, bash skorzysta z nich, jesli nie, to beda wewnetrznie emulowane cechujac sie opisanym ponizej zachowaniem. /dev/fd/fd Jezeli fd jest poprawna liczba calkowita, to duplikowany jest deskryptor pliku fd. /dev/stdin Duplikowany jest deskryptor pliku 0. /dev/stdout Duplikowany jest deskryptor pliku 1. /dev/stderr Duplikowany jest deskryptor pliku 2. /dev/tcp/host/port Jesli host jest poprawna nazwa hosta lub adresem internetowym, a port jest liczba calkowita okreslajaca numer portu lub nazwa uslugi, to bash usiluje otworzyc polaczenie do odpowiedniego gniazda TCP. /dev/udp/host/port Jesli host jest poprawna nazwa hosta lub adresem internetowym, a port jest liczba calkowita okreslajaca numer portu lub nazwa uslugi, to bash usiluje otworzyc polaczenie do odpowiedniego gniazda UDP. Nieudane otwarcie lub utworzenie pliku powoduje niepowodzenie przekierowania. Przekierowania uzywajace deskryptorow plikow, wiekszych niz 9 musza byc uzywane z duza ostroznoscia, gdyz moga byc w konflikcie z deskryptorami plikow uzywanymi wewnetrznie przez powloke. Przekierowanie wejscia Przekierowanie wejscia powoduje otwarcie do odczytu pliku, ktorego nazwa wynika z interpretacji slowa. Odczyt bedzie wykonywany z deskryptora pliku n lub standardowego wejscia (zerowy deskryptor pliku) jesli nie podano n. Ogolny format przekierowania wejscia: [n]slowo Jezeli operatorem przekierowania jest >, a zostala wlaczona opcja noclobber wbudowanego polecenia set, to przekierowanie nie powiedzie sie jezeli plik o nazwie wynikajacej z interpretacji slowa istnieje i jest zwyklym plikiem. Jezeli operatorem przekierowania jest >|, albo operatorem jest > przy niewlaczonej opcji noclobber, to wykonywana jest proba przekierowania, nawet jesli plik slowo istnieje. Dolaczanie przekierowanego wyjscia Przekierowanie wyjscia w ten sposob powoduje, ze plik o nazwie wynikajacej z interpretacji slowa zostanie otwarty do dolaczania (append). Dolaczanie bedzie wykonywane z deskryptora pliku n lub standardowego wyjscia (deskryptor pliku 1) jesli nie podano n. Jezeli plik nie istnieje jest tworzony. Ogolny format dolaczania wyjscia: [n]>>slowo Przekierowanie standardowego wyjscia i wyjscia bledow Bash pozwala, przy pomocy tej konstrukcji, przekierowac standardowe wyjscie (deskryptor pliku 1) i standardowe wyjscie bledow (deskryptor plikow 2) do pliku, ktorego nazwa jest zinterpretowane slowo. Istnieja dwie postaci takiego przekierowania: &>slowo i >&slowo Sposrod nich, zalecana jest pierwsza forma. Jest ona semantycznie rownowazna >slowo 2>&1 Przy uzywaniu drugiej postaci, slowo nie moze zostac zinterpretowane jako liczba ani -. Jesli tak sie stanie, zadziala inny operator przekierowania (zob. Powielanie deskryptorow plikow ponizej) z powodu kompatybilnosci wstecznej. Dolaczanie standardowego wyjscia i wyjscia bledow Ta konstrukcja pozwala na dolaczanie, standardowego wyjscia (deskryptor pliku 1) i standardowego wyjscia bledow (deskryptor plikow 2) do pliku, ktorego nazwa jest zinterpretowane slowo. Format dolaczania standardowego wyjscia i wyjscia bledow: &>>slowo Jest to semantycznie rownowazne >>slowo 2>&1 (zob. Powielanie deskryptorow plikow ponizej). Dokumenty wlaczone (Here Documents) Ten typ przekierowania instruuje powloke, by czytala wejscie z biezacego zrodla az do napotkania wiersza zawierajacego tylko slowo (bez zadnych konczacych odstepow). Wszystkie wiersze przeczytane do tego momentu sa nastepnie uzywane jako standardowe wejscie (lub deskryptor pliku n, jesli podano n) polecenia. Format dokumentow wlaczonych jest nastepujacy: [n]<<[-]slowo dokument wlaczony ogranicznik Na slowie nie jest wykonywana interpretacja parametrow ani zmiennych, podstawiania wynikow polecen, rozwijanie nazw plikow ani interpretacja wyrazen arytmetycznych. Jezeli cytowana jest czesc slowa, to ogranicznik jest wynikiem usuniecia cytowan ze slowa, a wiersze w dokumencie wlaczonym nie sa interpretowane. Jezeli slowo nie jest cytowane, wszystkie wiersze dokumentu wlaczonego podlegaja interpretacji parametrow, podstawianiu polecen i interpretacji wyrazen arytmetycznych. Sekwencja \ jest ignorowana, a do cytowania znakow \, $ i ` musi byc uzyte \. Jezeli operatorem przekierowania jest <<-, to wszystkie poczatkowe znaki tabulacji sa obcinane z wierszy wejsciowych i wiersza zawierajacego ogranicznik. Pozwala to na ustawienie naturalnych wciec dla dokumentow wlaczonych w skryptach powloki. Lancuchy wlaczone (Here Strings) Wariant dokumentow wlaczonych, ktorego format jest nastepujacy: [n]<<&slowo podobnie, sluzy do powielania deskryptorow standardowego wyjscia. Jezeli nie okreslono n, stosowane jest standardowe wyjscie (deskryptor pliku 1). Jezeli cyfry w slowie nie okreslaja deskryptora pliku otwartego do wyjscia, pojawia sie blad przekierowania. Jezeli slowo zostanie zinterpretowane jako -, deskryptor pliku n jest zamykany. W przypadku specjalnym, jezeli pominieto n, a slowo nie jest interpretowane jako jedna lub wiecej cyfr lub -, to przekierowywane sa standardowe wyjscie i standardowe wyjscie bledow, jak opisano poprzednio. Przenoszenie deskryptorow plikow Operator przekierowania [n]<&slowo- przenosi deskryptor pliku slowo do deskryptora pliku n lub, jesli nie podano n, na standardowe wejscie (deskryptor pliku 0). Slowo jest zamykane po zduplikowaniu do n. Podobnie, operator przekierowania [n]>&slowo- przenosi deskryptor pliku slowo do deskryptora pliku n lub, jesli nie podano n, na standardowe wyjscie (deskryptor pliku 1). Otwieranie deskryptorow plikow do odczytu i zapisu Operator przekierowania [n]<>slowo powoduje, ze plik o nazwie wyniklej z interpretacji slowa zostanie otwarty do odczytu i zapisu. Odczyt i zapis beda wykonywane z deskryptora pliku n lub standardowego wejscia (deskryptor pliku 0) jesli nie podano n. Jezeli plik nie istnieje, to jest tworzony. ALIASY Aliasy (czyli synonimy) pozwalaja na zastapienie slowa lancuchem, gdy zostanie ono uzyte jako pierwsze slowo w poleceniu prostym. Powloka utrzymuje liste aliasow, ktore moga byc ustawiane i uniewazniane przy pomocy wbudowanych polecen alias i unalias (zobacz ponizej WBUDOWANE POLECENIA POWLOKI). Dla pierwszego slowa kazdego polecenia, jesli nie jest cytowane, nastepuje sprawdzenie, czy posiada ono alias. Jezeli tak, to slowo to jest zastepowane tekstem aliasu. Znaki /, $, ` i = i wszystkie metaznaki powloki oraz znaki cytowania wypisane powyzej nie moga byc nazwa aliasu. Tekst zastepujacy moze zawierac dowolne poprawne wejscie powloki, lacznie z metaznakami powloki. Pierwsze slowo tekstu zastepujacego jest z kolei sprawdzane na aliasy, ale slowo identyczne z interpretowanym wlasnie aliasem nie jest interpretowane powtornie. Oznacza to, ze mozna miec alias ls do ls -F, na przyklad, a bash nie bedzie usilowal rekurencyjnie interpretowac zastepujacego tekstu. Jezeli ostatnim znakiem wartosci aliasu jest odstep, to nastepne slowo polecenia wystepujace po aliasie ma rowniez sprawdzana interpretacje aliasow. Aliasy sa tworzone i pokazywane poleceniem alias, a usuwane poleceniem unalias. Nie ma zadnego mechanizmu poslugiwania sie argumentami w tekscie zastepujacym. Jesli potrzebne sa argumenty, nalezy skorzystac z funkcji powloki (zob. ponizej FUNKCJE). Aliasy nie sa interpretowane, gdy powloka nie jest interaktywna, chyba ze ustawiono opcje powloki expand_aliases przy pomocy shopt (zobacz opis shopt w sekcji WBUDOWANE POLECENIA POWLOKI ponizej). Reguly dotyczace definiowania i uzywania aliasow sa nieco zagmatwane. Bash zawsze czyta co najmniej jeden pelny wiersz z wejscia, oraz wszystkie wiersze tworzace polecenie zlozone, przed wykonaniem jakichkolwiek polecen tego wiersza lub polecenia zlozonego. Aliasy interpretowane sa w czasie odczytu polecenia, nie podczas jego wykonywania. Z tego powodu, definicja aliasu wystepujaca w tym samym wierszu, co inne polecenie nie zadziala az do przeczytania nastepnego wiersza wejscia. Na polecenia wystepujace po definicji aliasu, w tym samym wierszu, nowy alias nie ma wplywu. Zachowanie to ujawnia sie takze podczas wykonywania funkcji. Aliasy interpretowane sa w czasie odczytu definicji funkcji, nie zas podczas jej wykonywania, gdyz sama definicja funkcji stanowi polecenie. W skutek tego aliasy zdefiniowane w funkcji nie sa dostepne, az do chwili po wykonaniu funkcji. Dla bezpieczenstwa, zawsze umieszczaj definicje aliasow w odrebnym wierszu i nie uzywaj alias w poleceniach zlozonych. Prawie w kazdym zastosowaniu aliasy sa wyparte przez funkcje powloki. FUNKCJE Punkcja powloki, zdefiniowana jak opisano powyzej, w sekcji GRAMATYKA POWLOKI, przechowuje szereg polecen do pozniejszego wykonania. Gdy nazwa funkcji powloki uzywana jest jako nazwa polecenia prostego, wykonywana jest lista polecen zwiazanych z ta nazwa funkcji. Funkcje wykonywane sa w kontekscie biezacej powloki; do ich interpretacji nie jest tworzony zaden nowy proces (zauwaz roznice w stosunku do wykonania skryptu powloki). Podczas wykonywania funkcji, przekazane jej argumenty staja sie parametrami pozycyjnymi. Aktualizowany jest specjalny parametr #, tak by odzwierciedlal zmiane. Parametr pozycyjny 0 nie jest zmieniany. Zmienna FUNCNAME podczas wykonywania funkcji ustawiana jest na jej nazwe. Wszystkie inne aspekty srodowiska wykonywania powloki sa identyczne miedzy funkcja i jej wywolujacym, z nastepujacymi wyjatkami: pulapki (trap) DEBUG i RETURN (zobacz opis wbudowanego trap ponizej, w sekcji WBUDOWANE POLECENIA POWLOKI) nie sa dziedziczone, chyba ze funkcja ma podany atrybut trace (patrz opis wbudowanego declare ponizej) lub opcja powloki -o functrace zostala wlaczona wbudowanym set (w takim przypadku wszystkie funkcje dziedzicza pulapki DEBUG i RETURN). Pulapka ERR nie jest dziedziczona, chyba ze wlaczono opcje -o errtrace powloki. Zmienne lokalne dla funkcji mozna zadeklarowac poleceniem wbudowanym local (zmienne lokalne). W innym przypadku zmienne i ich wartosci sa dzielone pomiedzy funkcja i ja wywolujacym. Jesli zmienna jest zadeklarowana jako local, to zmienna ma zakres widzialnosci ograniczony do tej funkcji i jej potomkow (w tym funkcji, ktore wywola). In the following description, the current scope is a currently- executing function. Previous scopes consist of that function's caller and so on, back to the "global" scope, where the shell is not executing any shell function. Consequently, a local variable at the current scope is a variable declared using the local or declare builtins in the function that is currently executing. Local variables "shadow" variables with the same name declared at previous scopes. For instance, a local variable declared in a function hides a global variable of the same name: references and assignments refer to the local variable, leaving the global variable unmodified. When the function returns, the global variable is once again visible. The shell uses dynamic scoping to control a variable's visibility within functions. With dynamic scoping, visible variables and their values are a result of the sequence of function calls that caused execution to reach the current function. The value of a variable that a function sees depends on its value within its caller, if any, whether that caller is the "global" scope or another shell function. This is also the value that a local variable declaration "shadows", and the value that is restored when the function returns. For example, if a variable var is declared as local in function func1, and func1 calls another function func2, references to var made from within func2 will resolve to the local variable var from func1, shadowing any global variable named var. The unset builtin also acts using the same dynamic scope: if a variable is local to the current scope, unset will unset it; otherwise the unset will refer to the variable found in any calling scope as described above. If a variable at the current local scope is unset, it will remain so (appearing as unset) until it is reset in that scope or until the function returns. Once the function returns, any instance of the variable at a previous scope will become visible. If the unset acts on a variable at a previous scope, any instance of a variable with that name that had been shadowed will become visible (see below how the localvar_unset shell option changes this behavior). Jesli zmienna FUNCNEST zostanie ustawiona na wartosc liczbowa wieksza od 0, to bedzie definiowac maksymalny poziom zagniezdzenia funkcji. Wywolania funkcji przekraczajace ten poziom beda powodowaly przerwanie calego polecenia. Jezeli w funkcji wywolywane jest wbudowane polecenie return, funkcja konczy dzialanie i wykonywanie wznawiane jest od nastepnego polecenia po wywolaniu funkcji. Kazda funkcja powiazana z pulapka RETURN jest wykonywana przed wznowieniem wykonywania. Gdy funkcja konczy dzialanie, parametrom pozycyjnym i parametrowi specjalnemu # przywracane sa wartosci, jakie posiadaly one przed wykonaniem funkcji. Function names and definitions may be listed with the -f option to the declare or typeset builtin commands. The -F option to declare or typeset will list the function names only (and optionally the source file and line number, if the extdebug shell option is enabled). Functions may be exported so that child shell processes (those created when executing a separate shell invocation) automatically have them defined with the -f option to the export builtin. A function definition may be deleted using the -f option to the unset builtin. Funkcje moga byc rekurencyjne. Zmienna FUNCNEST moze posluzyc do ograniczenia glebokosci stosu wywolan funkcji i liczby wywolan funkcji. Domyslnie, nie ma narzuconego ograniczenia na liczbe rekurencyjnych wywolan. OBLICZANIE WYRAZEN ARYTMETYCZNYCH Powloka pozwala, pod pewnymi warunkami, na obliczanie wartosci wyrazen arytmetycznych (zobacz wbudowane polecenia let i declare, polecenie zlozone (( oraz Interpretacja wyrazen arytmetycznych). Obliczenia wykonywane sa na liczbach calkowitych o ustalonej wielkosci (fixed-width), bez kontroli przepelnienia (overflow), mimo iz dzielenie przez 0 jest przechwytywane i oznaczane jako blad. Operatory i ich priorytety oraz sposob ich dolaczania sa takie same jak w jezyku C. Ponizsza lista operatorow pogrupowana jest w poziomy operatorow o jednakowym priorytecie. Poziomy podano w kolejnosci malejacego priorytetu. id++ id-- post-inkrementacja i post-dekrementacja zmiennej - + jednoargumentowy minus i plus ++id --id pre-inkrementacja i pre-dekrementacja zmiennej ! ~ negacja logiczna i bitowa ** potegowanie * / % mnozenie, dzielenie, reszta z dzielenia + - dodawanie, odejmowanie << >> lewo i prawostronne przesuniecie bitowe <= >= < > porownanie == != rownosci i nierownosc & bitowa koniunkcja (AND) ^ bitowa alternatywa wylaczna (XOR) | bitowa alternatywa (OR) && logiczna koniunkcja (AND) || logiczna alternatywa (OR) wyraz?wyraz:wyraz operator warunkowy = *= /= %= += -= <<= >>= &= ^= |= przypisanie wyraz1 , wyraz2 przecinek Jako operandy dozwolone sa zmienne powloki; interpretacja parametrow przeprowadzana jest przed obliczeniem wyrazenia. Wewnatrz wyrazenia, do zmiennych powloki mozna sie tez odwolywac przez nazwe, bez uzycia skladni interpretacji parametrow. Zmienna powloki, ktora jest pusta lub nieustawiona jest przyjmowana jako 0, gdy odwoluje sie do jej nazwy bez uzywania skladni interpretacji parametrow. Gdy wystapi odwolanie sie do zmiennej lub gdy przypisano wartosc zmiennej, ktorej nadano wczesniej atrybut liczby calkowitej przy uzyciu declare -i, to jej wartosc obliczana jest jako wyrazenie arytmetyczne. Pusta wartosc jest interpretowana jako 0. Zmienna powloki nie musi miec wlaczonego atrybutu liczby calkowitej by mogla byc uzyta w wyrazeniu. Integer constants follow the C language definition, without suffixes or character constants. Constants with a leading 0 are interpreted as octal numbers. A leading 0x or 0X denotes hexadecimal. Otherwise, numbers take the form [base#]n, where the optional base is a decimal number between 2 and 64 representing the arithmetic base, and n is a number in that base. If base# is omitted, then base 10 is used. When specifying n, if a non-digit is required, the digits greater than 9 are represented by the lowercase letters, the uppercase letters, @, and _, in that order. If base is less than or equal to 36, lowercase and uppercase letters may be used interchangeably to represent numbers between 10 and 35. Operatory interpretowane sa w kolejnosci priorytetu. Podwyrazenia w nawiasach obliczane sa jako pierwsze i moga uniewaznic podane wyzej reguly priorytetow. WYRAZENIA WARUNKOWE Wyrazenia warunkowe uzywane sa przez polecenie zlozone [[ oraz polecenia wbudowane test i [ do testowania atrybutow pliku i wykonywania porownan lancuchowych i arytmetycznych. Zachowanie polecen test i [ zalezy od liczby podanych im argumentow; zob, opis tych polecen, aby dowiedziec sie o wszelkich akcjach zaleznych od polecenia. Wyrazenia zlozone sa z ponizszych jedno- i dwuargumentowych skladowych. Bash traktuje wiele nazw plikow jako specjalne, gdy sa uzywane w wyrazeniach. Jesli system operacyjny na ktorym dziala bash udostepnia je, to bash ich uzyje, w przeciwnym razie bedzie wewnetrznie emulowal ich dzialanie: Jesli ktorys z argumentow plikowych jednej z skladowych jest w postaci /dev/fd/n, to sprawdzany jest deskryptor pliku n. Jezeli argument plik ktorejs skladowej jest jednym z /dev/stdin, /dev/stdout lub /dev/stderr, to sprawdzany jest, odpowiednio, deskryptor 0, 1 lub 2. Jesli nie okreslono inaczej, skladowe operujace na plikach podazaja za dowiazaniami symbolicznymi i dzialaja na celu dowiazania, a nie na samym dowiazaniu. Gdy operatory < i > sa uzywane z poleceniem [[, to sortuja zgodnie z porzadkiem leksykograficznym, uzywajac biezacego ustawienia locale. Polecenie test sortuje korzystajac z kolejnosci ASCII. -a plik Prawda jesli plik istnieje. -b plik Prawda jesli plik istnieje i jest blokowym plikiem specjalnym. -c plik Prawda jesli plik istnieje i jest znakowym plikiem specjalnym. -d plik Prawda jesli plik istnieje i jest katalogiem. -e plik Prawda jesli plik istnieje. -f plik Prawda jesli plik istnieje i jest plikiem zwyklym. -g plik Prawda jesli plik istnieje i ma ustawiony bit set-group-id. -h plik Prawda jesli plik istnieje i jest dowiazaniem symbolicznym. -k plik Prawda jesli plik istnieje i ma ustawiony bit ochrony (sticky bit). -p plik Prawda jesli plik istnieje i jest potokiem nazwanym (FIFO). -r plik Prawda jesli plik istnieje i daje sie czytac. -s plik Prawda jesli plik istnieje i ma rozmiar wiekszy niz zero. -t fd Prawda jesli deskryptor pliku fd jest otwarty i odnosi sie do terminala. -u plik Prawda jesli plik istnieje i ma ustawiony bit set-user-id. -w plik Prawda jesli plik istnieje i daje sie don zapisac. -x plik Prawda jesli plik istnieje i jest wykonywalny. -G plik Prawda jesli plik istnieje i jego wlascicielem jest efektywny id grupy. -L plik Prawda jesli plik istnieje i jest dowiazaniem symbolicznym. -N plik Prawda jesli plik istnieje i zostal zmodyfikowany od czasu jego ostatniego odczytu. -0 plik Prawda jesli plik istnieje i jego wlascicielem jest efektywny id uzytkownika. -S plik Prawda jesli plik istnieje i jest gniazdem. plik1 -ef plik2 Prawda jesli plik1 i plik2 odnosza sie do tego samego urzadzenia i numeru i-wezla. plik1 -nt plik2 Prawda, jesli plik1 jest nowszy (wedlug daty modyfikacji) niz plik2 lub plik1 istnieje a plik2 nie. plik1 -ot plik2 Prawda, jesli plik1 jest starszy niz plik2 lub plik2 istnieje a plik1 nie. -o nazwa_opcji Prawda jesli opcja powloki nazwa_opcji jest wlaczona. Zobacz zestawienie opcji w opisie opcji -o wbudowanego set, ponizej. -v nazwa-zmiennej Prawda, jesli zmienna powloki zmienna-powloki jest ustawiona (zostala jej przypisana wartosc). -R nazwa-zmiennej Prawda, jesli zmienna powloki zmienna-powloki jest ustawiona i jest nazwa referencyjna. -z lancuch Prawda jesli dlugosc lancucha wynosi zero. string -n lancuch Prawda jesli lancuch ma dlugosc niezerowa. lancuch1 == lancuch2 lancuch1 = lancuch2 Prawda, jesli lancuchy sa sobie rowne. = powinno byc uzywane z poleceniem test, w celu zachowania zgodnosci z norma POSIX. Gdy uzywane jest z poleceniem [[, przeprowadzane jest dopasowanie do wzorca, zgodnie z opisem powyzej Polecenia zlozone). lancuch1 != lancuch2 Prawda jesli lancuchy nie sa rowne. lancuch1 < lancuch2 Prawda jesli lancuch1 przy sortowaniu wystepowalby przed lancuchem2 wedlug biezacego ustawienia locale. lancuch1 > lancuch2 Prawda jesli lancuch1 przy sortowaniu wystepowalby po lancuchu2 wedlug biezacego ustawienia locale. arg1 OP arg2 OP is one of -eq, -ne, -lt, -le, -gt, or -ge. These arithmetic binary operators return true if arg1 is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to arg2, respectively. Arg1 and arg2 may be positive or negative integers. When used with the [[ command, Arg1 and Arg2 are evaluated as arithmetic expressions (see ARITHMETIC EVALUATION above). INTERPRETACJA POLECEN PROSTYCH Gdy wykonywane jest polecenie proste, powloka wykonuje nastepujace interpretacje, przypisania i przekierowania, od lewej do prawej, w nastepujacej kolejnosci. 1. Slowa oznaczone przez analizator skladni jako przypisania zmiennych (poprzedzajace nazwe polecenia) i przekierowania zachowywane sa do pozniejszego przetworzenia. 2. Slowa, nie bedace przypisaniami zmiennych ani przekierowaniami sa interpretowane. Jezeli po interpretacji pozostana jakies slowa, to pierwsze z nich przyjmowane jest za nazwe polecenia a pozostale za argumenty. 3. Wykonywane sa przekierowania, jak opisano powyzej w sekcji PRZEKIEROWANIE. 4. W kazdym przypisaniu zmiennej tekst po znaku rownosci = podlega interpretacji tyldy, interpretacji parametrow, podstawianiu wynikow polecen, interpretacji wyrazen arytmetycznych i usuwaniu cudzyslowow, zanim zostanie przypisany do zmiennej. If no command name results, the variable assignments affect the current shell environment. In the case of such a command (one that consists only of assignment statements and redirections), assignment statements are performed before redirections. Otherwise, the variables are added to the environment of the executed command and do not affect the current shell environment. If any of the assignments attempts to assign a value to a readonly variable, an error occurs, and the command exits with a non-zero status. Jezeli nie otrzymano zadnej nazwy polecenia, wykonywane sa przekierowania, ale nie maja one wplywu na biezace srodowisko powloki. Blad przekierowania powoduje, ze polecenie konczy prace z niezerowym kodem. Jezeli po interpretacji istnieje nazwa polecenia, to wykonywanie odbywa sie jak opisano ponizej. W przeciwnym wypadku, polecenie konczy prace. Jezeli jednym z wykonanych krokow bylo podstawienie wynikow polecenia, to zwracany kod zakonczenia jest kodem ostatniego wykonanego podstawienia polecenia. Jesli nie wystapilo podstawianie polecen, to polecenie konczy prace z kodem zerowym. WYKONYWANIE POLECEN Po podziale polecenia na slowa, jesli jego wynikiem jest polecenie proste z opcjonalna lista argumentow, podejmowane sa ponizsze akcje. Jesli polecenie nie zawiera ukosnikow, powloka usiluje je zlokalizowac. Jezeli istnieje funkcja powloki o tej nazwie, wywolywana jest ta funkcja, jak opisano powyzej w sekcji FUNKCJE. Jezeli nazwa nie pasuje do funkcji, powloka szuka jej na liscie polecen wbudowanych. Jezeli znaleziono pasujace, to jest ono wywolywane. If the name is neither a shell function nor a builtin, and contains no slashes, bash searches each element of the PATH for a directory containing an executable file by that name. Bash uses a hash table to remember the full pathnames of executable files (see hash under SHELL BUILTIN COMMANDS below). A full search of the directories in PATH is performed only if the command is not found in the hash table. If the search is unsuccessful, the shell searches for a defined shell function named command_not_found_handle. If that function exists, it is invoked in a separate execution environment with the original command and the original command's arguments as its arguments, and the function's exit status becomes the exit status of that subshell. If that function is not defined, the shell prints an error message and returns an exit status of 127. Jezeli poszukiwanie bylo pomyslne lub jesli nazwa polecenia zawiera jeden lub wiecej ukosnikow, powloka wykonuje zadany program w odrebnym srodowisku wykonania. Argumentowi 0 przypisywana jest podana nazwa, a pozostalym argumentom polecenia podane argumenty, jesli byly takowe. If this execution fails because the file is not in executable format, and the file is not a directory, it is assumed to be a shell script, a file containing shell commands, and the shell creates a new instance of itself to execute it. This subshell reinitializes itself, so that the effect is as if a new shell had been invoked to handle the script, with the exception that the locations of commands remembered by the parent (see hash below under SHELL BUILTIN COMMANDS) are retained by the child. Jezeli program jest plikiem o zawartosci rozpoczynajacej sie od #!, to reszta pierwszego wiersza okresla interpreter dla tego programu. Powloka uruchamia podany interpreter na systemach operacyjnych, ktore same nie obsluguja tego formatu wykonywalnego. Argumenty dla interpretera skladaja sie z pojedynczego opcjonalnego argumentu wystepujacego po nazwie interpretera w pierwszym wierszu programu, nastepujacej po nim nazwy programu i nastepujacych po niej argumentow polecenia, jesli byly takowe. SRODOWISKO WYKONYWANIA POLECEN Powloka posiada srodowisko wykonywania (execution environment), na ktore skladaja sie: o otwarte pliki odziedziczone przez powloke przy wywolaniu, zmodyfikowane przez przekierowania przekazane do wbudowanego polecenia exec o biezacy katalog roboczy ustawiony przez cd, pushd lub popd, albo odziedziczony przez powloke przy wywolaniu o maska trybu tworzonych plikow ustawiona przez umask albo odziedziczona po rodzicu powloki o biezace pulapki ustawione przez trap o parametry powloki ustawione przez przypisania zmiennych przy pomocy set albo odziedziczone ze srodowiska rodzica powloki o funkcje powloki zdefiniowane podczas wykonywania lub odziedziczone ze srodowiska rodzica powloki o opcje wlaczone przy wywolaniu (albo domyslnie albo przy pomocy argumentow wiersza polecen) albo przez set o opcje wlaczone przez shopt o aliasy powloki zdefiniowane przy pomocy alias o rozne id procesow, lacznie z identyfikatorami zadan tla, wartosc $$ i wartosc $PPID Gdy ma zostac wykonane polecenie proste inne niz funkcja powloki lub polecenie wbudowane, wywolywane jest w odrebnym srodowisku wykonania, skladajacych sie z ponizszych elementow. Jesli nie podano inaczej, wartosci dziedziczone sa z powloki. o otwarte pliki powloki, plus modyfikacje i dodatki okreslone przez przekierowania polecenia o biezacy katalog roboczy o maska trybu tworzonych plikow o zmienne powloki oznaczone do wyeksportowania, razem ze zmiennymi wyeksportowanymi do polecenia, przekazane w srodowisku o pulapki przechwycone przez powloke resetowane sa do wartosci odziedziczonych przez nia od rodzica, a pulapki ignorowane przez powloke sa ignorowane. Polecenie wywolane w odrebnym srodowisku nie moze wplywac na srodowisko wykonywania powloki. Podpowloka jest kopia procesu powloki. Podstawienia wynikow polecen i polecenia asynchroniczne wywolywane sa w srodowisku podpowloki, ktore jest kopia srodowiska powloki, z wyjatkiem tego, ze pulapki przechwycone przez powloke sa resetowane do wartosci, jakie powloka odziedziczyla po rodzicu podczas wywolania. Polecenia wbudowane wywolywane jako czesc potoku rowniez wykonywane sa w srodowisku podpowloki. Zmiany wykonane w srodowisku podpowloki nie moga wplywac na srodowisko wykonywania powloki. Podpowloki utworzone do wykonania podstawiania wynikow polecen dziedzicza wartosc opcji -e z powloki macierzystej. Jesli bash nie dziala w trybie posix, to czysci opcje -e w takich podpowlokach. Jezeli po poleceniu wystepuje &, a nie uaktywniono sterowania zadaniami, to domyslnym standardowym wejsciem dla tego polecenia jest pusty plik /dev/null. W przeciwnym razie wywolywane polecenie dziedziczy deskryptory plikow po wolajacej powloce, zmodyfikowane przekierowaniami. SRODOWISKO Podczas wywolywania program otrzymuje tablice lancuchow zwana srodowiskiem (environment). Jest to lista par nazwa-wartosc, o postaci nazwa=wartosc. Powloka pozwala na manipulowanie srodowiskiem na kilka sposobow. Przy wywolaniu, przeszukuje ona wlasne srodowisko i tworzy parametr dla kazdej znalezionej nazwy, automatycznie zaznaczajac go do wyeksportowania do procesow potomnych. Wykonywane polecenia dziedzicza srodowisko. Polecenia export i declare -x pozwalaja na dodawanie i usuwanie ze srodowiska parametrow i funkcji. Jezeli w srodowisku zmieniana jest wartosc parametru, to nowa wartosc staje sie czescia srodowiska, zastepujac stara. Srodowisko dziedziczone przez kazde wykonywane polecenie sklada sie z poczatkowego srodowiska powloki, ktorego wartosci moga byc w powloce zmieniane, minus ewentualne pary usuniete poleceniem unset, plus dodane poprzez polecenia export i declare -x. Srodowisko dla dowolnego polecenia prostego czy funkcji moze byc tymczasowo powiekszone przez poprzedzenie polecenia przypisaniem parametrow, jak opisano powyzej w sekcji PARAMETRY. Te instrukcje przypisania maja wplyw wylacznie na srodowisko postrzegane przez to polecenie. Jezeli ustawiona jest opcja -k (zobacz ponizej opis wbudowanego polecenia set), to wszystkie przypisania parametrow umieszczane sa w srodowisku polecenia, a nie tylko te, ktore poprzedzaja nazwe polecenia. Gdy bash wywoluje polecenie zewnetrzne, zmienna _ ustawiana jest na pelna nazwe pliku polecenia i przekazywana temu poleceniu w jego srodowisku. STATUS ZAKONCZENIA Kod zakonczenia wykonanego polecenia jest wartoscia zwracana przez wywolanie systemowe waitpid lub funkcje bedaca jego odpowiednikiem. Kody zakonczenia mieszcza sie w zakresie od 0 do 255, przy czym, jak wyjasniono ponizej, powloka moze uzywac wartosci powyzej 125 w sposob specjalny. Kod zakonczenia z wbudowanych polecen powloki i polecen zlozonych rowniez sa ograniczone do powyzszego przedzialu. W szczegolnych przypadkach, powloka uzywa wartosci specjalnych aby poinformowac o konkretnym trybie bledu. Dla celow powloki, polecenie, ktore zakonczylo prace z zerowym kodem zakonczenia, powiodlo sie. Zerowy kod oznacza powodzenie. Niezerowy kod oznacza niepowodzenie. Gdy polecenie konczy prace z bledem krytycznym N, bash posluguje sie wartoscia 128+N jako kodem zakonczenia. Jezeli nie znaleziono polecenia, proces potomny powolany do jego wykonania zwraca kod 127. Jezeli polecenie zostalo znalezione, ale nie jest wykonywalne, kod zakonczenia wynosi 126. Jezeli polecenie nie powiodlo sie z powodu bledu podczas interpretacji lub przekierowania, kod zakonczenia jest wiekszy od zera. Wbudowane polecenia powloki zwracaja kod 0 (true prawda) jesli sie powiodly, i niezerowy (false falsz) jesli podczas ich wykonywania pojawil sie blad. Wszystkie polecenia wbudowane zwracaja kod 2 dla wskazania niepoprawnego uzycia, zwykle nieprawidlowych opcji lub brakujacych argumentow. Status zakonczenia ostatniego polecenia jest dostepny w specjalnym parametrze $?. Sam Bash zwraca kod zakonczenia ostatniego wykonanego polecenia, chyba ze pojawi sie blad skladni, wowczas konczy praca z wartoscia niezerowa. Zobacz tez ponizej polecenie wbudowane exit. SYGNALY Gdy bash jest interaktywny, przy braku jakichkolwiek pulapek (przechwytywania sygnalow), ignoruje on SIGTERM (tak, ze kill 0 nie zabija powloki interaktywnej), a SIGINT jest przechwytywany i obslugiwany (tak, ze wbudowane polecenie wait daje sie przerwac). We wszystkich przypadkach, bash ignoruje SIGQUIT. Jezeli dziala kontrola zadan, bash ignoruje SIGTTIN, SIGTTOU i SIGTSTP. Zadania synchroniczne uruchomione przez bash maja procedury obslugi sygnalow (signal handlers) ustawione na wartosci odziedziczone przez powloke po rodzicu. Jezeli nie pracuje kontrola zadan, to polecenia asynchroniczne ignoruja rowniez SIGINT i SIGQUIT. Polecenia uruchamiane wskutek podstawiania polecen ignoruja generowane z klawiatury sygnaly kontroli zadan SIGTTIN, SIGTTOU i SIGTSTP. Powloka domyslnie konczy prace po otrzymaniu SIGHUP. Przed zakonczeniem, powloka interaktywna rozsyla otrzymany SIGHUP do wszystkich zadan, pracujacych lub zatrzymanych. Do zatrzymanych zadan wysylany jest SIGCONT by upewnic sie, ze otrzymuja SIGHUP. Chcac uniknac wyslania sygnalu przez powloke do konkretnego zadania, nalezy usunac je z tablicy zadan przy pomocy wbudowanego polecenia disown (zobacz ponizej WBUDOWANE POLECENIA POWLOKI) lub oznakowac, by nie otrzymywalo SIGHUP, poslugujac sie disown -h. Jezeli przy pomocy shopt zostala ustawiona opcja huponexit powloki, bash wysyla SIGHUP do wszystkich zadan, gdy konczy prace interaktywna powloka zgloszeniowa. Gdy bash podczas oczekiwania na ukonczenie polecenia otrzymuje sygnal, dla ktorego ustawiono pulapke, pulapka ta nie zostanie wykonana az do zakonczenia pracy polecenia. Gdy bash oczekuje na polecenie asynchroniczne za posrednictwem wbudowanego wait, odbior sygnalu, dla ktorego ustawiono przechwytywanie spowoduje, ze wbudowane wait natychmiast skonczy prace z kodem wiekszym od 128, po czym natychmiast zostanie wywolana pulapka. When job control is not enabled, and bash is waiting for a foreground command to complete, the shell receives keyboard-generated signals such as SIGINT (usually generated by ^C) that users commonly intend to send to that command. This happens because the shell and the command are in the same process group as the terminal, and ^C sends SIGINT to all processes in that process group. When bash is running without job control enabled and receives SIGINT while waiting for a foreground command, it waits until that foreground command terminates and then decides what to do about the SIGINT: 1. If the command terminates due to the SIGINT, bash concludes that the user meant to end the entire script, and acts on the SIGINT (e.g., by running a SIGINT trap or exiting itself); 2. If the command does not terminate due to SIGINT, the program handled the SIGINT itself and did not treat it as a fatal signal. In that case, bash does not treat SIGINT as a fatal signal, either, instead assuming that the SIGINT was used as part of the program's normal operation (e.g., emacs uses it to abort editing commands) or deliberately discarded. However, bash will run any trap set on SIGINT, as it does with any other trapped signal it receives while it is waiting for the foreground command to complete, for compatibility. KONTROLA ZADAN Kontrola zadan odnosi sie do mozliwosci selektywnego zatrzymywania (zawieszania - suspend) wykonywania procesow i pozniejszej kontynuacji (wznawiania - resume) ich wykonywania. Uzytkownik zwykle wykorzystuje to udogodnienie za posrednictwem interaktywnego interfejsu obslugiwanego wspolnie przez systemowy sterownik terminala i bash. Powloka kojarzy z kazdym potokiem zadanie. Przechowuje tablice aktualnie wykonywanych zadan, ktora mozna przegladac za pomoca polecenia jobs. Gdy bash uruchamia zadanie asynchronicznie (w tle), wypisuje wiersz w rodzaju: [1] 25647 wskazujacy, ze zadanie to ma numer 1 a ID ostatniego procesu w potoku zwiazanym z zadaniem wynosi 25647. Wszystkie procesy w jednym potoku naleza do tego samego zadania. Bash posluguje sie abstrakcja (abstraction) zadania jako podstawa kontroli zadan. Dla ulatwienia implementacji interfejsu uzytkownika do kontroli zadan, system operacyjny utrzymuje pojecie ID grupy procesow biezacego terminala (current terminal process group ID). Elementy tej grupy procesow (procesy, ktorych ID grupy procesow jest rowny ID grupy procesow biezacego terminala) otrzymuja generowane z klawiatury sygnaly, takie jak SIGINT. Mowimy, ze procesy te pracuja pierwszoplanowo. Procesy tla to takie, ktorych ID grupy procesow rozni sie od terminala; procesy takie sa odporne na sygnaly pochodzace z klawiatury. Tylko procesom pierwszoplanowym wolno czytac i, jesli uzytkownik ustawi stty tostop, pisac na terminal. Do procesow tla usilujacych czytac z (i pisac do, jesli dziala stty tostop) terminala wysylany jest przez sterownik terminala sygnal SIGTTIN (SIGTTOU), ktory, jesli nie zostanie przechwycony, wstrzymuje proces. Jezeli system operacyjny, na ktorym dziala bash obsluguje kontrole zadan, bash zawiera funkcje do jej wykorzystywania. Nacisniecie klawisza wstrzymania (zwykle ^Z, Control-Z) podczas pracy procesu powoduje, ze proces ten zostanie zatrzymany a sterowanie zostanie zwrocone do bash. Nacisniecie klawisza opoznione wstrzymanie (zwykle ^Y, Control-Y) powoduje, ze proces zostanie zatrzymywany gdy bedzie usilowal czytac wejscie z terminala, a sterowanie powroci do bash. Uzytkownik moze nastepnie zmieniac stan takiego zadania, poslugujac sie poleceniem bg do kontynuacji zadania w tle, fg do kontynuacji na pierwszym planie lub poleceniem kill do zabicia zadania. ^Z dziala natychmiast i ma efekt uboczny: powoduje odrzucenie oczekujacego wyjscia i wprowadzonych, a nieprzetworzonych nacisniec klawiszy (typeahead). Istnieje kilka sposobow wskazywania zadania w powloce. Znak % poprzedza nazwe zadania. Zadanie numer n mozna wskazac jako %n. Zadanie moze byc tez okreslone przez uzycie przedrostka nazwy uzytej do jego uruchomienia lub podlancucha, jaki wystepuje w jego wierszu polecen. Na przyklad, %ce odnosi sie do zatrzymanego zadania, ktorego nazwa zaczyna sie od ce. Jesli przedrostek pasuje do wiecej niz jednego zadania, bash zglasza blad. Z drugiej strony, uzycie %?ce, wskazuje na zadanie zawierajace podlancuch ce w swym wierszu polecen. Jezeli lancuch pasuje do wiecej niz jednego zadania, bash zglasza blad. Symbole %% i %+ okreslaja rozumiane przez powloke biezace zadanie, bedace ostatnim zadaniem zatrzymanym, gdy bylo na pierwszym planie lub uruchomionym w tle. Do poprzedniego zadania mozna odwolywac sie przy pomocy %-. W wyjsciu odnoszacym sie do zadan (np. wyjscie polecenia jobs), biezace zadanie jest zawsze zaznaczone znakiem +, a zadanie poprzednie -. Pojedynczy % (bez towarzyszacego okreslenia zadania) rowniez odnosi sie do biezacego zadania. Do przywrocenia zadania na pierwszy plan mozna posluzyc sie po prostu jego nazwa: %1 jest synonimem dla ,,fg %1", przywracajacego zadanie 1 z tla na pierwszy plan. Podobnie, ,,%1 &" wznawia zadanie 1 w tle, rownowaznie do ,,bg %1"". Powloka natychmiast dowiaduje sie czy zadanie zmienilo stan. Normalnie, bash czeka ze zgloszeniem zmian do momentu, gdy ma wyswietlic zachete, by nie przerywac innego wyjscia. Jezeli wlaczono opcje -b wbudowanego polecenia set, bash zglasza takie zmiany natychmiast. Dla kazdego konczacego prace procesu potomnego wykonywana jest ewentualna pulapka przechwytujaca SIGCHLD. Jezeli wykonano probe zakonczenia pracy bash przy istniejacych zatrzymanych zadaniach (lub, gdy wlaczono opcje powloki checkjobs uzywajac wbudowanego shopt, dzialajacych zadaniach), powloka wypisuje komunikat ostrzegawczy i, jesli wlaczono opcje checkjobs wypisuje zadania wraz z ich stanem. Mozna wowczas posluzyc sie poleceniem jobs do sprawdzenia ich stanu. Jezeli wykonywana jest druga proba zakonczenia pracy bez wystapienia wtraconego miedzy nie polecenia, powloka nie wypisuje kolejnego ostrzezenia a zatrzymane zadania sa przerywane. When the shell is waiting for a job or process using the wait builtin, and job control is enabled, wait will return when the job changes state. The -f option causes wait to wait until the job or process terminates before returning. ZACHETA POWLOKI When executing interactively, bash displays the primary prompt PS1 when it is ready to read a command, and the secondary prompt PS2 when it needs more input to complete a command. Bash displays PS0 after it reads a command but before executing it. Bash displays PS4 as described above before tracing each command when the -x option is enabled. Bash allows these prompt strings to be customized by inserting a number of backslash-escaped special characters that are decoded as follows: \a znak dzwonka ASCII (07) \d data w formacie "DzienTyg Miesiac Dzien" (np. "Tue May 26") \D{format} format jest przekazywany do strftime(3), a wynik jest wstawiany do lancucha zachety. Pusty format daje w wyniku czas w lokalnym formacie. Nawiasy klamrowe sa wymagane \e znak escape ASCII (033) \h nazwa hosta do pierwszej kropki `.' \H nazwa hosta \j liczba zadan aktualnie obslugiwanych przez powloke \l glowna czesc nazwy urzadzenia terminala powloki \n znak nowej linii \r powrot karetki \s nazwa powloki, glowna czesc nazwy $0 (fragment wystepujacy po ostatnim ukosniku) \t biezacy czas w formacie 24-godzinnym GG:MM:SS \T biezacy czas w formacie 12-godzinnym GG:MM:SS \@ biezacy czas w 12-godzinnym formacie am/pm \A biezacy czas w 24-godzinnym formacie GG:MM \u nazwa biezacego uzytkownika (username) \v wersja programu bash (np. 2.00) \V wydanie bash, wersja+poziom lat (np., 2.00.0) \w wartosc zmiennej powloki PWD ($PWD), z $HOME zapisanym w skrocie tylda (uzywa wartosci ze zmiennej PROMPT_DIRTRIM) \W glowna czesc nazwy (basename) $PWD, z $HOME zapisanym w skrocie tylda \! numer tego polecenia w historii \# numer polecenia tego polecenia \$ jezeli efektywnym UID jest 0, to #, w przeciwnym razie $ \nnn znak odpowiadajacy osemkowej liczbie nnn \\ odwrotny ukosnik \[ poczatek sekwencji znakow niedrukowalnych, ktora moze sluzyc do osadzenia w zachecie sekwencji sterujacych terminalem \] koniec sekwencji znakow niedrukowalnych The command number and the history number are usually different: the history number of a command is its position in the history list, which may include commands restored from the history file (see HISTORY below), while the command number is the position in the sequence of commands executed during the current shell session. After the string is decoded, it is expanded via parameter expansion, command substitution, arithmetic expansion, and quote removal, subject to the value of the promptvars shell option (see the description of the shopt command under SHELL BUILTIN COMMANDS below). This can have unwanted side effects if escaped portions of the string appear within command substitution or contain characters special to word expansion. READLINE Jest to biblioteka obslugujaca odczytywanie wejscia podczas poslugiwania sie powloka interaktywna, chyba ze przy wywolaniu powloki podano opcje --noediting. Domyslnie, polecenia edycji wiersza sa podobne do wystepujacych w Emacsie. Dostepny jest takze interfejs edycji wiersza w stylu vi. Edycja wiersza moze zostac wlaczona w dowolnym czasie, przy uzyciu opcji -o emacs lub -o vi wbudowanego polecenia set. By wylaczyc edycje wiersza po uruchomieniu powloki, uzyj opcji +o emacs lub +o vi wbudowanego polecenia set (zobacz WBUDOWANE POLECENIA POWLOKI ponizej). Notacja Readline W tej sekcji, do zapisu nacisniec klawiszy uzywana jest notacja w stylu emacsa. Klawisze Control zapisywane sa jako C-klawisz, np., C-n oznacza Control-N. Podobnie, meta klawisze zapisywane sa jako M-klawisz, zatem M-x oznacza Meta-X. (Na klawiaturach bez klawisza meta M-x oznacza ESC x, tj. nacisnij klawisz Escape a nastepnie klawisz x. Czyni to ESC przedrostkiem meta (meta prefix). Kombinacja M-C-x oznacza ESC-Control-x, lub nacisnij klawisz Escape, nastepnie przytrzymaj klawisz Control podczas naciskania klawisza x.) Poleceniom readline mozna podawac numeryczne argumenty, ktore normalnie dzialaja jako licznik powtorzen. Czasami jednak, znaczacy jest znak argumentu. Przekazanie ujemnego argumentu poleceniu, ktore dziala w przod (np. kill-line) powoduje, ze bedzie ono dzialac odwrotnym kierunku (wstecz). Polecenia, ktorych zachowanie z argumentami odbiega od podanego odnotowano ponizej. Gdy polecenie opisano jako usuwajace (killing) tekst, tekst ten jest zachowywany to ewentualnego pozniejszego odzyskania (przywolania yanking). Kolejne usuniecia powoduja, ze tekst jest zbierany w jedna calosc, ktora mozna odzyskac naraz. Polecenia nie usuwajace tekstu oddzielaja kawalki tekstu w stosie usuwania (killing ring). Inicjalizacja Readline Readline is customized by putting commands in an initialization file (the inputrc file). The name of this file is taken from the value of the INPUTRC variable. If that variable is unset, the default is ~/.inputrc. If that file does not exist or cannot be read, the ultimate default is /etc/inputrc. When a program which uses the readline library starts up, the initialization file is read, and the key bindings and variables are set. There are only a few basic constructs allowed in the readline initialization file. Blank lines are ignored. Lines beginning with a # are comments. Lines beginning with a $ indicate conditional constructs. Other lines denote key bindings and variable settings. Domyslne przypisania klawiszy mozna zmienic przy pomocy pliku inputrc. Inne programy poslugujace sie ta biblioteka moga dodawac wlasne polecenia i przypisania. Na przyklad, umieszczenie M-Control-u: universal-argument lub C-Meta-u: universal-argument w inputrc spowodowaloby, ze M-C-u wywolywaloby polecenie readline universal-argument. Rozpoznawane sa nastepujace symboliczne nazwy znakow: RUBOUT, DEL, ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE i TAB. Oprocz nazw polecen readline pozwala przypisywac klawisze do lancucha. Lancuch ten zostanie wstawiony po nacisnieciu klawisza (makro). Przypisania klawiszy Readline Skladnia przypisan klawiszy sterujacych w pliku inputrc jest prosta. Wymagana jest wylacznie nazwa polecenia lub tekst makra i sekwencja klawiszy, do ktorej powinno byc przypisane. Klawisze moga byc podane na dwa sposoby: jako symboliczna nazwa klawisza, moze byc z przedrostkami Meta- lub Control-, lub jako sekwencja klawiszy. Przy uzyciu postaci nazwa-klaw:nazwa-funkcji lub makro, nazwa-klaw jest nazwa klawisza zapisana w jez.angielskim. Na przyklad: Control-u: universal-argument Meta-Rubout: backward-kill-word Control-o: "> output" W powyzszym przykladzie, C-u przypisane jest do funkcji universal-argument, M-DEL przypisane jest do funkcji backward-kill-word a C-o przypisane do uruchamiania makra wyrazonego po prawej (to jest, wstawiania tekstu ``> output'' w wiersz). W drugiej postaci, "sekw-klaw":nazwa-funkcji lub makro, sekw-klaw rozni sie od nazwa-klaw powyzej tym, ze przez umieszczenie sekwencji w cudzyslowach mozna podac lancuchy oznaczajace cala sekwencje klawiszy. Mozna posluzyc sie niektorymi kombinacjami klawiszy w stylu GNU Emacs-a, jak w ponizszym przykladzie, nie sa jednak rozpoznawane symboliczne nazwy znakow: "\C-u": universal-argument "\C-x\C-r": re-read-init-file "\e[11~": "Klawisz funkcyjny 1" W tym przykladzie, C-u jest ponownie przypisane do funkcji universal-argument. C-x C-r przypisane jest do funkcji re-read-init-file, zas ESC [ 1 1 ~ przypisane jest do wstawienia tekstu ``Function Key 1''. Oto pelny zestaw sekwencji specjalnych w stylu GNU Emacs \C- przedrostek control \M- przedrostek meta \e znak escape \\ odwrotny ukosnik (backslash) \" doslowny cudzyslow " \' doslowny apostrof ' Oprocz sekwencji specjalnych w stylu GNU Emacsa, dostepny jest drugi zestaw sekwencji z uzyciem odwrotnego ukosnika: \a alarm (dzwonek) \b backspace \d delete \f znak wysuwu strony (form feed) \n znak nowej linii \r powrot karetki \t tabulacja pozioma (horizontal tab) \v tabulacja pionowa (vertical tab) \nnn osmiobitowy znak, ktorego wartoscia jest osemkowa liczba nnn (jedna do trzech cyfr) \xHH osmiobitowy znak, ktorego wartoscia jest szesnastkowa liczba nnn (jedna lub dwie cyfry szesnastkowe) Podczas wprowadzania tekstu makra, do wskazania jego definicji musza byc uzyte pojedyncze lub podwojne cudzyslowy. Zaklada sie, ze tekst niecytowany jest nazwa funkcji. W ciele makra interpretowane sa sekwencje specjalne z uzyciem odwrotnego ukosnika opisane powyzej. odwrotny ukosnik cytuje dowolny inny znak w tekscie makra, lacznie z " i '. Bash umozliwia wyswietlanie i zmiane biezacych przypisan klawiszy readline za pomoca wbudowanego polecenia bind. Tryb edycji mozna przelaczac podczas uzywania interaktywnego przez posluzenie sie opcja -o wbudowanego polecenia set (zobacz ponizej WBUDOWANE POLECENIA POWLOKI). Zmienne Readline Readline posiada zmienne, ktorych mozna uzywac do dodatkowego dostosowania jej zachowania. Zmienna moze byc ustawiana w pliku inputrc przy pomocy instrukcji postaci set nazwa-zmiennej wartosc or using the bind builtin command (see SHELL BUILTIN COMMANDS below). Z wymienionymi nizej wyjatkami, zmienne readline moga przyjmowac wartosci On lub Off (wielkosc znakow nie ma znaczenia). Nierozpoznane nazwy zmiennych sa ignorowane. Gdy odczytywana jest wartosc zmiennej, puste lub wyzerowane wartosci, "on" (bez wzgledu na wielkosc liter) i "1" sa rownowazne On. Wszystkie pozostale wartosci sa rownowazne Off. A oto zmienne i ich wartosci domyslne: active-region-start-color A string variable that controls the text color and background when displaying the text in the active region (see the description of enable-active-region below). This string must not take up any physical character positions on the display, so it should consist only of terminal escape sequences. It is output to the terminal before displaying the text in the active region. This variable is reset to the default value whenever the terminal type changes. The default value is the string that puts the terminal in standout mode, as obtained from the terminal's terminfo description. A sample value might be "\e[01;33m". active-region-end-color A string variable that "undoes" the effects of active-region-start-color and restores "normal" terminal display appearance after displaying text in the active region. This string must not take up any physical character positions on the display, so it should consist only of terminal escape sequences. It is output to the terminal after displaying the text in the active region. This variable is reset to the default value whenever the terminal type changes. The default value is the string that restores the terminal from standout mode, as obtained from the terminal's terminfo description. A sample value might be "\e[0m". bell-style (audible) Kontroluje, co dzieje sie gdy readline chce uzyc sygnalu dzwiekowego terminala. Jesli ustawiona na none, readline nigdy nie emituje sygnalu. Jesli ustawiona na visible, readline posluguje sie "widzialnym dzwonkiem" (visible bell), jesli jest dostepny. Jezeli ustawiona na audible, readline usiluje uzyskac sygnal dzwiekowy z terminala. bind-tty-special-chars (On) Jesli ustawiona na On, readline bedzie probowal przypiac znaki kontrolne traktowane w sposob specjalny przez sterownik terminala jadra do ich odpowiednikow readline. blink-matching-paren (Off) Jesli ustawiona na On, readline sprobuje na krotko przesunac kursor do nawiasu otwierajacego przy wstawieniu nawiasu zamykajacego. colored-completion-prefix (Off) If set to On, when listing completions, readline displays the common prefix of the set of possible completions using a different color. The color definitions are taken from the value of the LS_COLORS environment variable. If there is a color definition in $LS_COLORS for the custom suffix "readline-colored-completion-prefix", readline uses this color for the common prefix instead of its default. colored-stats (Off) Jesli ustawiona na On, readline wyswietli mozliwe dopasowania za pomoca uzywajac kolorow wskazujacych na ich typ pliku. Wzory kolorow sa brane z wartosci zmiennej srodowiskowej LS_COLORS. comment-begin (,,#") Lancuch wstawiany, gdy wykonywane jest polecenie insert-comment readline. Polecenie to jest przypisane do M-# w trybie emacs, zas do # w trybie vi. completion-display-width (-1) Liczba kolumn ekranowych uzywanych do wyswietlenia mozliwych dopasowan przy przeprowadzaniu dopasowan. Wartosc jest ignorowana, jesli jest mniejsza niz 0 lub wieksza niz szerokosc ekranu terminala. Wartosc 0 spowoduje, ze dopasowania beda wyswietlane po jednym na wiersz. Domyslna wartosc to -1. completion-ignore-case (Off) Jezeli ustawiona na On, readline wykonuje dopasowywanie i uzupelnianie nazw plikow bez rozrozniania wielkosci liter. completion-map-case (Off) Jesli ustawiona na On i wlaczona jest completion-ignore-case readline traktuje znaki minusa -) i podkreslnika (_) jako rownowazne przy dokonywaniu dopasowania i uzupelniania nazw plikow gdy ma to czynic bez wzgledu na wielkosc znakow. completion-prefix-display-length (0) Dlugosc (w znakach) wspolnego przedrostka listy mozliwych uzupelnien, ktore sa wyswietlane bez modyfikacji. Gdy jest ustawiona na wartosc wieksza od zera, wspolne przedrostki dluzsze od tej wartosci sa zastepowane wielokropkiem podczas wyswietlania dostepnych uzupelnien. completion-query-items (100) This determines when the user is queried about viewing the number of possible completions generated by the possible-completions command. It may be set to any integer value greater than or equal to zero. If the number of possible completions is greater than or equal to the value of this variable, readline will ask whether or not the user wishes to view them; otherwise they are simply listed on the terminal. A zero value means readline should never ask; negative values are treated as zero. convert-meta (On) If set to On, readline will convert characters with the eighth bit set to an ASCII key sequence by stripping the eighth bit and prefixing an escape character (in effect, using escape as the meta prefix). The default is On, but readline will set it to Off if the locale contains eight-bit characters. This variable is dependent on the LC_CTYPE locale category, and may change if the locale is changed. disable-completion (Off) Jesli ustawione na On, readline zabroni uzupelniania slow. Znaki uzupelniania zostana wstawione w wiersz tak, jakby zostaly przypisane do self-insert. echo-control-characters (On) Jesli ustawione na On, readline wyswietla znak odpowiadajacy sygnalowi otrzymanemu z klawiatury, w systemach ktore informuja o obslugiwaniu tej wlasciwosci. editing-mode (emacs) Kontroluje czy readline rozpoczyna prace z zestawem przypisan klawiszy podobnym do emacs czy do vi. editing-mode moze byc ustawiane albo na emacs albo na vi. emacs-mode-string (@) Jesli zmienna show-mode-in-prompt jest wlaczona, ten lancuch jest wyswietlany zaraz po ostatnim wierszu pierwszej zachety, gdy aktywny jest tryb edycji emacsa. Wartosc jest interpretowana jak przypisania klawiszy, tak wiec dostepne sa standardowe przedrostki meta- i control oraz sekwencje ucieczki korzystajace z ukosnika. Sekwencje ucieczki \1 i \2 odpowiednio zaczynaja i koncza znaki niedrukowalne, co mozna wykorzystac do osadzenia sekwencji kontrolnych terminala w tym lancuchu. enable-active-region (On) The point is the current cursor position, and mark refers to a saved cursor position. The text between the point and mark is referred to as the region. When this variable is set to On, readline allows certain commands to designate the region as active. When the region is active, readline highlights the text in the region using the value of the active-region-start-color, which defaults to the string that enables the terminal's standout mode. The active region shows the text inserted by bracketed-paste and any matching text found by incremental and non-incremental history searches. enable-bracketed-paste (On) When set to On, readline configures the terminal to insert each paste into the editing buffer as a single string of characters, instead of treating each character as if it had been read from the keyboard. This prevents readline from executing any editing commands bound to key sequences appearing in the pasted text. enable-keypad (Off) Gdy jest ustawione na On, readline bedzie usilowac wlaczyc numeryczny blok klawiatury (application keypad) przy wywolaniu. Niektore systemy potrzebuja tego do wlaczenia klawiszy strzalek. enable-meta-key (On) Gdy jest ustawiona na On, readline probuje wlaczyc dostepne modyfikujace klawisze meta, o ktorych obslugiwaniu zapewnia terminal, gdy sa wywolywane. Na wielu terminalach meta klawisz jest uzywany do wysylania znakow osmiobitowych. expand-tilde (Off) Jezeli ustawione na On, podczas proby uzupelniania slow readline wykonuje interpretacje tyldy. history-preserve-point (Off) Ustawione na on powoduje, ze kod obslugi historii polecen usiluje w kazdym wierszu polecen odzyskanym za pomoca previous-history lub next-history umiescic punkt (biezaca pozycje kursora) w tym samym miejscu. history-size (unset) Ustawia maksymalna liczbe wpisow historii zapisywanych w liscie historii. Gdy jest ustawiona na zero, istniejace wpisy sa usuwane, a nowe nie sa zapisywane. Gdy wartosc jest mniejsza od zera, liczba wpisow w liscie historii jest nieograniczona. Domyslnie liczba wpisow w liscie historii jest ustawiana na wartosc zmiennej powloki HISTSIZE. Jesli sprobuje sie ustawic history-size na wartosc nienumeryczna, maksymalna liczba wpisow historii zostanie ustawiona na 500. horizontal-scroll-mode (Off) Ustawione na On powoduje, ze readline do wyswietlania posluguje sie pojedynczym wierszem. Jesli wejscie jest dluzsze niz szerokosc ekranu, to jego zawartosc jest wowczas przewijana w poziomie w pojedynczym wierszu ekranu, zamiast zawijania do nastepnego wiersza. Ustawienie to jest automatycznie wlaczone dla terminali o wysokosci rownej 1. input-meta (Off) If set to On, readline will enable eight-bit input (that is, it will not strip the eighth bit from the characters it reads), regardless of what the terminal claims it can support. The name meta-flag is a synonym for this variable. The default is Off, but readline will set it to On if the locale contains eight-bit characters. This variable is dependent on the LC_CTYPE locale category, and may change if the locale is changed. isearch-terminators (,,C-[C-J") Lancuch znakow, ktory powinien przerywac wyszukiwanie krokowe (incremental search) bez pozniejszego wykonywania znaku jako polecenia. Jezeli zmiennej tej nie nadano wartosci, to wyszukiwanie krokowe beda przerywac ESC i C-J. keymap (emacs) Ustawia biezace mapowanie klawiatury readline. Zestawami poprawnych mapowan sa emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-command i vi-insert. vi jest rownowaznikiem dla vi-command; emacs jest rownowazne emacs-standard. Domyslna wartoscia jest emacs; wartosc editing-mode rowniez wplywa na domyslne mapowanie. keyseq-timeout (500) Okresla czas, jaki readline poczeka na znak, gdy odczytuje wieloznaczna sekwencje klawiszy (taka, ktora z dotychczasowego wejscia moze utworzyc kompletna sekwencje klawiszy lub moze otrzymac dodatkowe wejscie, aby utworzyc kompletna, dluzsza sekwencje klawiszy). Jezeli wejscie nie zostanie wprowadzone w trakcie czasu oczekiwania, readline uzyje krotszej kompletnej sekwencji klawiszy. Wartosc jest okreslona w milisekundach, dlatego 1000 oznacza, ze readline poczeka sekunde na dodatkowe wejscie. Jesli ta zmienna jest ustawiona na wartosc mniejsza lub rowna zero, lub na wartosc nienumeryczna, readline poczeka na wcisniecie dodatkowego klawisza, aby zdecydowac ktora sekwencje klawiszy uzupelnic. mark-directories (On) Jezeli ustawione na On, to uzupelniane nazwy katalogow maja dolaczany koncowy ukosnik. mark-modified-lines (Off) Jezeli ustawione na On, wiersze historii, ktore zostaly zmienione wyswietlane sa z poprzedzajaca je gwiazdka (*). mark-symlinked-directories (Off) Gdy ustawiona na On, uzupelniane nazwy bedace dowiazaniami symbolicznymi do katalogow, maja dodany znak ukosnika (przedmiot wartosci mark-directories). match-hidden-files (On) Ta zmienna, gdy jest ustawiona na On, powoduje, ze readline wykonujac uzupelnianie nazw plikow dopasowuje pliki, ktorych nazwy zaczynaja sie od kropki `.' (pliki ukryte). Gdy ustawiona na Off, poczatkowa kropka w nazwie jaka ma byc uzupelniona, musi byc wpisana przez uzytkownika. menu-complete-display-prefix (Off) Gdy ustawiona na On, uzupelnianie menu wyswietla wspolny przedrostek listy mozliwych uzupelnien (ktory moze byc pusty) przed cyklicznym przelaczaniem sie miedzy pozycjami z listy. output-meta (Off) If set to On, readline will display characters with the eighth bit set directly rather than as a meta-prefixed escape sequence. The default is Off, but readline will set it to On if the locale contains eight-bit characters. This variable is dependent on the LC_CTYPE locale category, and may change if the locale is changed. page-completions (On) Gdy ustawione na On, readline uzywa wewnetrznego programu wyswietlajacego podobnego do more, do wyswietlania pelnego ekranu mozliwych uzupelnien na raz. print-completions-horizontally (Off) Jezeli ustawione na On, readline wyswietla dopasowane uzupelnienia w kolejnosci alfabetycznej poziomo, zamiast w dol ekranu. revert-all-at-newline (Off) Gdy ustawione na On, readline anuluje wszystkie zmiany w wierszach historii przed powrotem, gdy wykonywane jest accept-line. Domyslnie, wiersze historii moga zostac zmodyfikowane i zachowac swe listy anulowan poprzez odwolania do readline. show-all-if-ambiguous (Off) Zmienia to domyslne zachowanie funkcji uzupelniania. Jezeli jest ustawione na on, to slowa majace wiecej niz jedno mozliwe uzupelnienie powoduja, ze natychmiast zostana podane dopasowania zamiast wyemitowania sygnalu dzwiekowego. show-all-if-unmodified (Off) Zmienna modyfikuje domyslne zachowanie funkcji uzupelnienia w sposob podobny do show-all-if-ambiguous. Gdy jest ustawiona na On, slowa ktore maja wiecej niz jedno mozliwe uzupelnienie bez mozliwych uzupelnien czesciowych (mozliwe uzupelnienia nie posiadaja wspolnego przedrostka), sa wypisywane natychmiast, bez wczesniejszego uzywania brzeczyka. show-mode-in-prompt (Off) If set to On, add a string to the beginning of the prompt indicating the editing mode: emacs, vi command, or vi insertion. The mode strings are user-settable (e.g., emacs-mode-string). skip-completed-text (Off) Gdy jest ustawiona na On, modyfikuje domyslne zachowanie uzupelniania gdy do wiersza wstawiane jest pojedyncze dopasowanie. Jest to aktywne tylko podczas przeprowadzania uzupelnienia w srodku slowa. Gdy jest wlaczona, readline nie wstawia znakow z uzupelniania, ktore pasuja do znakow w miejscu wprowadzania w uzupelnianym slowie, dzieki czemu czesci slowa za kursorem, nie sa duplikowane. vi-cmd-mode-string ((cmd)) Jesli zmienna show-mode-in-prompt jest wlaczona, ten lancuch jest wyswietlany zaraz po ostatnim wierszu pierwszej zachety, gdy aktywny jest tryb edycji vi w trybie polecen. Wartosc jest interpretowana jak przypisania klawiszy, tak wiec dostepne sa standardowe przedrostki meta- i control oraz sekwencje ucieczki korzystajace z ukosnika. Sekwencje ucieczki \1 i \2 odpowiednio zaczynaja i koncza znaki niedrukowalne, co mozna wykorzystac do osadzenia sekwencji kontrolnych terminala w tym lancuchu. vi-ins-mode-string ((ins)) Jesli zmienna show-mode-in-prompt jest wlaczona, ten lancuch jest wyswietlany zaraz po ostatnim wierszu pierwszej zachety, gdy aktywny jest tryb edycji vi w trybie wstawiania. Wartosc jest interpretowana jak przypisania klawiszy, tak wiec dostepne sa standardowe przedrostki meta- i control oraz sekwencje ucieczki korzystajace z ukosnika. Sekwencje ucieczki \1 i \2 odpowiednio zaczynaja i koncza znaki niedrukowalne, co mozna wykorzystac do osadzenia sekwencji kontrolnych terminala w tym lancuchu. visible-stats (Off) Jezeli ustawione na On, to przy wyswietlaniu mozliwych uzupelnien do nazwy pliku zostanie dolaczony znak okreslajacy typ pliku wskazywany przez stat(2). Konstrukcje warunkowe Readline Readline implementuje udogodnienie podobne duchem do funkcji kompilacji warunkowej preprocesora C, pozwalajace na wykonywanie przypisan klawiszy i ustawien zmiennych w zaleznosci od wyniku testow. Uzywane sa cztery dyrektywy analizatora skladni. $if The $if construct allows bindings to be made based on the editing mode, the terminal being used, or the application using readline. The text of the test, after any comparison operator, extends to the end of the line; unless otherwise noted, no characters are required to isolate it. mode Postac mode= dyrektywy $if sluzy do sprawdzania czy readline jest w trybie emacs czy vi. Moze byc wykorzystywana, na przyklad, w polaczeniu z poleceniem set keymap, do ustawienia przypisan w mapowaniach emacs-standard i emacs-ctlx tylko jesli readline uruchamia sie w trybie emacs. term Postac term= mozna wykorzystywac do wlaczenia specyficznych dla terminala przypisan klawiszy, byc moze do przypisania wyjscia dla sekwencji klawiszy funkcyjnych terminala. Slowo po prawej stronie = sprawdzane jest z zarowno pelna nazwa terminala, jaki i czescia jego nazwy przed pierwszym -. Umozliwia to, na przyklad, dopasowanie przez sun zarowno sun jak i sun-cmd. version The version test may be used to perform comparisons against specific readline versions. The version expands to the current readline version. The set of comparison operators includes =, (and ==), !=, <=, >=, <, and >. The version number supplied on the right side of the operator consists of a major version number, an optional decimal point, and an optional minor version (e.g., 7.1). If the minor version is omitted, it is assumed to be 0. The operator may be separated from the string version and from the version number argument by whitespace. aplikacja Konstrukcja aplikacja sluzy do wlaczania ustawien specyficznych dla aplikacji. Kazdy program korzystajacy z biblioteki readline ustawia nazwe aplikacji (application name), a plik inicjujacy moze sprawdzic czy ma ona jakas szczegolna wartosc. Moze to byc uzywane do przypisywania sekwencji klawiszy funkcjom przydatnym w danym programie. Na przyklad, ponizsze polecenie dodaje sekwencje klawiszy wykonujaca w bash cytowanie biezacego lub poprzedniego slowa: $if Bash # Cytuj biezace lub poprzednie slowo "\C-xq": "\eb\"\ef\"" $endif variable The variable construct provides simple equality tests for readline variables and values. The permitted comparison operators are =, ==, and !=. The variable name must be separated from the comparison operator by whitespace; the operator may be separated from the value on the right hand side by whitespace. Both string and boolean variables may be tested. Boolean variables must be tested against the values on and off. $endif Polecenie to, jak widac w poprzednim przykladzie, konczy wykonywanie polecenia $if. $else Polecenia w tej galezi dyrektywy $if wykonywane sa gdy nie powiedzie sie sprawdzenie warunku. $include Dyrektywa ta pobiera jako argument pojedyncza nazwe pliku i odczytuje polecenia i przypisania z tego pliku. Na przyklad, ponizsza dyrektywa odczytalaby /etc/inputrc: $include /etc/inputrc Wyszukiwanie Readline zapewnia polecenia do wyszukiwania w historii polecen (zobacz ponizej HISTORIA) wierszy zawierajacych zadany lancuch. Istnieja dwa tryby wyszukiwania: krokowy (incremental) i nie-niekrokowy (non-incremental). Wyszukiwania krokowe rozpoczynaja sie przed zakonczeniem wpisywania przez uzytkownika szukanego tekstu. Po wpisaniu kazdego znakow szukanego lancucha readline wyswietla nastepna pozycje historii pasujaca do wpisanego do tej pory lancucha. Wyszukiwanie krokowe wymaga tylko tylu znakow ile potrzebne jest do znalezienia pozadanej pozycji historii. Znaki wystepujace w wartosci zmiennej isearch-terminators sluza do przerwania wyszukiwania krokowego. Jezeli zmienna ta nie ma przypisanej wartosci, to wyszukiwanie przerywaja znaki Escape i Control-J. Control-G porzuca wyszukiwanie krokowe i przywraca pierwotny wiersz. Gdy przerwie sie wyszukiwanie, pozycja historii zawierajaca poszukiwany lancuch staje sie biezacym wierszem. W celu odnalezienia innych pasujacych pozycji, nalezy nacisnac odpowiednio Control-S lub Control-R. Wyszukuje to wstecz lub w przod kolejna pasujaca do dotychczas wpisanego lancucha pozycje historii. Wszystkie inne sekwencje klawiszy przypisane do polecenia readline przerywaja wyszukiwanie i wykonuja zadane polecenie. Na przyklad, znak nowej linii przerywa wyszukiwanie i akceptuje wiersz, wykonujac skutkiem tego polecenie z listy historii. Readline pamieta lancuch uzyty w ostatnim wyszukiwaniu krokowym. Jezeli Control-R zostanie nacisniete dwa razy, bez wprowadzenia pomiedzy nacisnieciami innych znakow definiujacych nowy lancuch szukania, to wykorzystywany jest uprzednio zapamietany lancuch. Wyszukiwania nie-krokowe czytaja caly szukany lancuch przed rozpoczeciem wyszukiwania pasujacych wierszy historii. Lancuch moze byc wpisany przez uzytkownika lub byc czescia zawartosci biezacego wiersza. Nazwy polecen Readline Ponizej podano liste nazw polecen i domyslnych sekwencji klawiszy, do ktorych sa one przypisane. Nazwy polecen bez towarzyszacej sekwencji klawiszy sa domyslnie nieprzypisane. W ponizszych opisach, punkt oznacza biezaca pozycje kursora, zas zaznaczenie do pozycji kursora zapamietanej przez polecenie set-mark. Tekst pomiedzy punktem a zaznaczeniem nazywany jest obszarem. Polecenia ruchu beginning-of-line (C-a) Przesuwa na poczatek biezacego wiersza. end-of-line (C-e) Przesuwa na koniec wiersza. forward-char (C-f) Przesuwa o znak w przod. backward-char (C-b) Przesuwa o znak wstecz. forward-word (M-f) Przesuwa na koniec nastepnego slowa. Slowa zlozone sa ze znakow alfanumerycznych (liter i cyfr). backward-word (M-b) Przesuwa na poczatek biezacego, lub poprzedniego, slowa. Slowa zlozone sa ze znakow alfanumerycznych (liter i cyfr). shell-forward-word Przesuwa na koniec nastepnego slowa w przod. Slowa sa oddzielone niecytowanymi metaznakami powloki. shell-backward-word Przesuwa na poczatek biezacego lub poprzedniego slowa w tyl. Slowa sa oddzielone niecytowanymi metaznakami powloki. previous-screen-line Attempt to move point to the same physical screen column on the previous physical screen line. This will not have the desired effect if the current readline line does not take up more than one physical line or if point is not greater than the length of the prompt plus the screen width. next-screen-line Attempt to move point to the same physical screen column on the next physical screen line. This will not have the desired effect if the current readline line does not take up more than one physical line or if the length of the current readline line is not greater than the length of the prompt plus the screen width. clear-display (M-C-l) Clear the screen and, if possible, the terminal's scrollback buffer, then redraw the current line, leaving the current line at the top of the screen. clear-screen (C-l) Czysci ekran, a nastepnie przerysowuje biezacy wiersz, pozostawiajac go na gorze ekranu. Z argumentem, odswieza biezacy wiersz bez czyszczenia ekranu. redraw-current-line Odswieza biezacy wiersz. Polecenia operujace na historii accept-line (Newline, Return) Akceptuje wiersz bez wzgledu na to, gdzie znajduje sie kursor. Jezeli wiersz ten nie jest pusty, to dodaje go do listy historii stosownie do stanu zmiennej HISTCONTROL. Jezeli wiersz jest zmienionym wierszem historii, to odtwarza wiersz historii do stanu pierwotnego. previous-history (C-p) Sprowadza poprzednie polecenie z listy historii, przesuwajac sie wstecz listy. next-history (C-n) Sciaga nastepne polecenie z listy historii, przesuwajac sie do przodu na liscie. beginning-of-history (M-<) Przesuwa na pierwszy wiersz w historii. end-of-history (M->) Przesuwa na koniec historii wprowadzania, tj. obecnie wprowadzanego wiersza. operate-and-get-next (C-o) Accept the current line for execution and fetch the next line relative to the current line from the history for editing. A numeric argument, if supplied, specifies the history entry to use instead of the current line. fetch-history With a numeric argument, fetch that entry from the history list and make it the current line. Without an argument, move back to the first entry in the history list. reverse-search-history (C-r) Wyszukuje wstecz poczynajac od biezacego wiersza i przesuwajac sie, w razie potrzeby, 'w gore' historii. Jest to wyszukiwanie krokowe. forward-search-history (C-s) Wyszukuje w przod poczynajac od biezacego wiersza i przesuwajac sie, w razie potrzeby, 'w dol' historii. Jest to wyszukiwanie krokowe. non-incremental-reverse-search-history (M-p) Wyszukuje wstecz poczynajac od biezacego wiersza poslugujac sie wyszukiwaniem nie-krokowym podanego przez uzytkownika lancucha. non-incremental-forward-search-history (M-n) Wyszukuje w przod poczynajac od biezacego wiersza poslugujac sie wyszukiwaniem nie-krokowym podanego przez uzytkownika lancucha. history-search-forward Wyszukuje w przod w historii lancucha znakow pomiedzy poczatkiem biezacego wiersza a punktem. Jest to wyszukiwanie nie-krokowe. history-search-backward Wyszukuje wstecz w historii lancucha znakow pomiedzy poczatkiem biezacego wiersza a biezaca pozycja kursora (punkt). Jest to wyszukiwanie nie-krokowe. history-substring-search-backward Search backward through the history for the string of characters between the start of the current line and the current cursor position (the point). The search string may match anywhere in a history line. This is a non-incremental search. history-substring-search-forward Search forward through the history for the string of characters between the start of the current line and the point. The search string may match anywhere in a history line. This is a non-incremental search. yank-nth-arg (M-C-y) Wstawia pierwszy argument poprzedniego polecenia (zwykle drugie slowo z poprzedniego wiersza) w punkt (biezaca pozycje kursora). Z argumentem n, wstawia n-te slowo poprzedniego polecenia (slowa w poprzednim poleceniu zaczynaja sie od slowa 0). Argument ujemny wstawia n-te slowo od konca poprzedniego polecenia. Po obliczeniu argumentu n, jest on wyodrebniany w taki sposob, jak gdyby podano opcje interpretowania historii "!n". yank-last-arg (M-., M-_) Wstawia ostatni argument poprzedniego polecenia (ostatnie slowo poprzedniej pozycji historii). Z argumentem numerycznym, zachowuje sie dokladnie tak, jak yank-nth-arg. Kolejne wywolania yank-last-arg przesuwaja wstecz listy historii, wstawiajac po kolei ostatni argument (lub slowo okreslone przez argument do pierwszego wywolania) kazdego wiersza. Kazdy argument numeryczny podany do pomyslnego wywolania okresla kierunek ruchu w historii. Argument ujemny zmienia kierunek poruszania sie (w tyl lub w przod). Mozliwosci interpretacji historii sa uzywane do wyodrebnienia ostatniego slowa, podobnie jak gdyby wybrano interpretacje historii za pomoca "!$". shell-expand-line (M-C-e) Interpretuj wiersz, jak czyni to powloka. Wykonuje to aliasy i interpretacje historii, jak rowniez interpretacje slow powloki. Zobacz INTERPRETACJA HISTORII ponizej. history-expand-line (M-^) Wykonuje interpretacje powloki w odniesieniu do biezacego wiersza. Zobacz INTERPRETACJA HISTORII ponizej. magic-space Wykonuje interpretacje powloki w odniesieniu do biezacego wiersza i wstawia spacje. Zobacz INTERPRETACJA HISTORII ponizej. alias-expand-line Wykonuje interpretacje aliasow w odniesieniu do biezacego wiersza. Zobacz ALIASY powyzej. history-and-alias-expand-line Wykonuje interpretacje historii i aliasow w odniesieniu do biezacego wiersza. insert-last-argument (M-., M-_) Synonim yank-last-arg. edit-and-execute-command (C-x C-e) Przywoluje edytor w biezacym wierszu polecen i wykonuje wynik jako polecenie powloki. Bash stara sie wywolac $VISUAL, $EDITOR i emacs jako edytor, w tej kolejnosci. Polecenia zmiany tekstu koniec-pliku (zwykle C-d) Znak wskazujacy koniec pliku, jak ustawiony np. przez ``stty''. Jesli znak tej jest odczytany, gdy nie ma zadnych innych znakow w wierszu, a punkt jest poczatkiem wiersza, readline interpretuje to jako koniec wejscia i zwraca EOF. delete-char (C-d) Usuwa znak w tym punkcie. Jezeli funkcja jest przypisana do tego samego znaku, jak znak EOF tty, jak czesto bywa z C-d, efekt jest opisany powyzej. backward-delete-char (Rubout) Usuwa znak przed kursorem. Jezeli podano argument numeryczny, zachowuje usuniety tekst na stosie usuniec. forward-backward-delete-char Usuwa znak pod kursorem, chyba ze kursor znajduje sie na koncu wiersza, wowczas usuwany jest znak przed kursorem. quoted-insert (C-q, C-v) Dodaje nastepny znak do wiersza doslownie. W ten sposob wstawiane sa znaki takie, jak na przyklad C-q. tab-insert (C-v TAB) Wstawia znak tabulacji. self-insert (a, b, A, 1, !, ...) Wstawia wpisany znak. transpose-chars (C-t) Zamienia miejscami znak sprzed punktu ze znakiem w punkcie, rownoczesnie przesuwajac punkt w przod. Jezeli punkt jest na koncu wiersza to zamienia to miejscami dwa znaki przed punktem. Argumenty ujemne nie skutkuja. transpose-words (M-t) Zamienia miejscami slowo sprzed punktu ze slowem za punktem, przesuwajac rownoczesnie punkt za przesuniete sprzed niego slowo. Jezeli punkt jest na koncu wiersza to zamienia to miejscami dwa ostanie slowa wiersza. upcase-word (M-u) Zamienia na wielkie litery biezace (lub nastepne) slowo. Z argumentem ujemnym zamienia na wielkie litery poprzednie slowo, ale nie przesuwa punktu. downcase-word (M-l) Zamienia na male litery biezace (lub nastepne) slowo. Z argumentem ujemnym zamienia na male litery poprzednie slowo, ale nie przesuwa punktu. capitalize-word (M-c) Zamienia na kapitaliki (pierwsza litera wielka, pozostale male) biezace (nastepne) slowo. Z argumentem ujemnym zamienia na kapitaliki poprzednie slowo, ale nie przesuwa punktu. overwrite-mode Przelacza tryb nadpisywania. Z jawnym, dodatnim argumentem liczbowym, przelacza do trybu nadpisywania. Z jawnym, niedodatnim argumentem liczbowym, przelacza do trybu wstawiania. Polecenie dotyczy jedynie trybu emacs, tryb vi nadpisuje w inny sposob. Kazde odwolania do readline() jest uruchamiane w trybie wstawiania. W trybie nadpisywania, znaki przypisane do self-insert zastepuja tekst pod kursorem, zamiast przesuwac go w prawa strone. Znaki przypisane do backward-delete-char zastepuja znak przed kursorem spacja. Domyslnie, to polecenie nie jest przypisane. Usuwanie i wklejanie kill-line (C-k) Usuwa tekst od punktu do konca wiersza. backward-kill-line (C-x Rubout) Usuwa wstecz do poczatku wiersza. unix-line-discard (C-u) Usuwa wstecz od punktu do poczatku wiersza. Usuwany tekst jest zachowywany na stosie usuniec. kill-whole-line Usuwa wszystkie znaki biezacego wiersza, bez wzgledu na polozenie punktu. kill-word (M-d) Usuwa od punktu do konca biezacego slowa, lub jesli uzyte pomiedzy slowami, do konca nastepnego slowa. Granice slow sa takie same, jak uzywane przez forward-word. backward-kill-word (M-Rubout) Usuwa slowo sprzed punktu. Granice slow sa takie same, jak uzywane przez backward-word. shell-kill-word Usuwa od kursora do konca biezacego slowa lub, jesli kursor znajduje sie pomiedzy slowami, do konca nastepnego slowa. Granice slow sa takie same, jak uzywane przez shell-forward-word. shell-backward-kill-word Usuwa slowo sprzed punktu. Granice slow sa takie same, jak uzywane przez shell-backward-word. unix-word-rubout (C-w) Usuwa slowo sprzed punktu, jako separatora slow uzywajac bialych znakow. Usuniety tekst zachowywany jest na stosie usuniec. unix-filename-rubout Usuwa slowo sprzed punktu, jako separatora slow uzywajac bialych znakow i ukosnika.Usuniety tekst zachowywany jest na stosie usuniec. delete-horizontal-space (M-\) Usuwa wszystkie spacje i tabulatory wokol punktu. kill-region Usuwa tekst w biezacym obszarze. copy-region-as-kill Kopiuje tekst obszaru do bufora usuwania. copy-backward-word Kopiuje slowo sprzed punktu do bufora usuwania. Granice slow sa takie same, jak dla backward-word. copy-forward-word Kopiuje slowo wystepujace po punkcie do bufora usuwania. Granice slow sa takie same, jak dla forward-word. yank (C-y) Wkleja wierzcholek stosu usuniec do bufora w punkcie (w miejscu kursora). yank-pop (M-y) Obraca stos usuniec i wkleja nowy wierzcholek. Dziala tylko nastepujac po yank lub yank-pop. Argumenty numeryczne digit-argument (M-0, M-1, ..., M--) Dodaje te cyfre do juz skladanego argumentu lub rozpoczyna nowy argument. M-- rozpoczyna argument ujemny. universal-argument Jest to inna metoda podawania argumentu. Jezeli po tym poleceniu wystepuje jedna lub wiecej cyfr, z opcjonalnym poczatkowym znakiem minus, to cyfry te definiuja argument. Jezeli po poleceniu wystepuja cyfry, to powtorne wykonanie universal-argument konczy argument numeryczny, ale w przeciwnym wypadku jest ignorowane. W przypadku specjalnym, jezeli bezposrednio po tym poleceniu wystepuje znak nie bedacy ani cyfra ani znakiem minus, to argument licznik dla nastepnego polecenia mnozony jest przez cztery. Argument licznik [zwykle powtorzen] wynosi poczatkowo cztery, totez wykonanie tej funkcji po raz pierwszy nadaje mu wartosc cztery, po raz drugi szesnascie, i tak dalej. Uzupelnianie complete (TAB) Usiluje przeprowadzic uzupelnianie tekstu przed punktem. Bash probuje uzupelniania traktujac tekst kolejno: jako zmienna (jezeli tekst zaczyna sie od $), nazwe uzytkownika (jesli tekst zaczyna sie od ~), nazwe hosta (jesli tekst zaczyna sie od @) lub polecenie (lacznie z aliasami i funkcjami). Jezeli zadne z powyzszych nie daje dopasowania, to probowane jest uzupelnianie nazw plikow. possible-completions (M-?) Pokazuje mozliwe uzupelnienia tekstu przed punktem. insert-completions (M-*) Wstawia przed punktem wszystkie uzupelnienia tekstu, ktore zostalyby wygenerowane przez possible-completions. menu-complete Podobne do complete, ale zastepuje slowo, jakie ma zostac uzupelnione pojedynczym uzupelnieniem z listy mozliwych. Powtarzane wykonanie menu-complete powoduje krokowe przechodzenie przez liste mozliwych uzupelnien i wstawianie kazdego z nich po kolei (zamiast uzupelnianego slowa). Na koncu listy uzupelnien emitowany jest sygnal dzwiekowy (zalezny od ustawienia bell-style) i przywracany jest pierwotny tekst. Argument n przesuwa n pozycji w przod na liscie dopasowan; do przesuwania sie wstecz mozna uzyc argumentu ujemnego. Polecenie w zamierzeniu ma byc przypisane do klawisza TAB, ale domyslnie nie jest przypisane. menu-complete-backward Podobne do menu-complete, ale przemieszcza sie wstecz po liscie mozliwych uzupelnien, identycznie gdyby menu-complete podano ujemny argument. To polecenie jest domyslnie nieprzypisane. delete-char-or-list Usuwa znak pod kursorem, jesli nie jest to poczatek badz koniec wiersza (jak delete-char). Na koncu wiersza, zachowuje sie identycznie jak possible-completions. To polecenie jest domyslnie nieprzypisane. complete-filename (M-/) Usiluje wykonac uzupelnianie nazw plikow na tekscie sprzed kursora. possible-filename-completions (C-x /) Pokazuje mozliwe uzupelnienia tekstu sprzed kursora, traktujac go jak nazwe pliku. complete-username (M-~) Usiluje wykonac uzupelnianie tekstu sprzed kursora, traktujac go jak nazwe uzytkownika. possible-username-completions (C-x ~) Pokazuje mozliwe uzupelnienia tekstu sprzed kursora, traktujac go jak nazwe uzytkownika. complete-variable (M-$) Usiluje wykonac uzupelnianie tekstu sprzed kursora, traktujac go jak zmienna powloki. possible-variable-completions (C-x $) Pokazuje mozliwe uzupelnienia tekstu sprzed kursora, traktujac go jak zmienna powloki. complete-hostname (M-@) Usiluje wykonac uzupelnianie tekstu sprzed kursora, traktujac go jak nazwe hosta. possible-hostname-completions (C-x @) Pokazuje mozliwe uzupelnienia tekstu sprzed kursora, traktujac go jak nazwe hosta. complete-command (M-!) Usiluje uzupelnic tekst sprzed punktu, traktujac go jak nazwe polecenia. Uzupelnianie polecenia probuje dopasowac tekst kolejno do aliasow, slow zastrzezonych, funkcji powloki, polecen wbudowanych powloki i wreszcie nazw plikow wykonywalnych. possible-command-completions (C-x !) Pokazuje mozliwe uzupelnienia tekstu sprzed kursora, traktujac go jak nazwe polecenia. dynamic-complete-history (M-TAB) Usiluje uzupelnic tekst sprzed kursora, w celu odnalezienia mozliwych uzupelnien porownujac go z wierszami listy historii. dabbrev-expand Usiluje wykonac uzupelnienie menu na tekscie sprzed kursora, w celu odnalezienia mozliwych uzupelnien porownujac go z wierszami listy historii. complete-into-braces (M-{) Wykonuje uzupelnianie nazwy pliku i wstawia liste mozliwych uzupelnien ujeta w nawiasy klamrowe, tak ze jest ona dostepna dla powloki (zobacz powyzej Interpretacja nawiasow). Makra klawiaturowe start-kbd-macro (C-x () Rozpoczyna zachowywanie wpisywanych znakow w biezacym makrze klawiaturowym. end-kbd-macro (C-x )) Zatrzymuje zachowywanie wpisywanych znakow w biezacym makrze klawiaturowym i przechowuje definicje. call-last-kbd-macro (C-x e) Ponownie wykonuje zdefiniowane makro klawiaturowe, powodujac pojawianie sie znakow makra tak, jakby zostaly wpisane z klawiatury. print-last-kbd-macro () Wypisuje ostatnie makro klawiaturowe, w formacie przeznaczonym do pliku inputrc. Rozne re-read-init-file (C-x C-r) Odczytuje zawartosc pliku inputrc i dolacza wszystkie znalezione tam przypisania klawiszy i zmiennych. abort (C-g) Zaniechuje biezacego polecenia edycji i emituje sygnal dzwiekowy terminala (zgodnie z ustawieniami bell-style). do-lowercase-version (M-A, M-B, M-x, ...) If the metafied character x is uppercase, run the command that is bound to the corresponding metafied lowercase character. The behavior is undefined if x is already lowercase. prefix-meta (ESC) Poprzedza przedrostkiem meta nastepny wpisany znak. ESC f jest rownowazne Meta-f. undo (C-_, C-x C-u) Krokowe cofniecie operacji, pamietane odrebnie dla kazdego wiersza. revert-line (M-r) Cofa wszystkie zmiany wykonane na tym wierszu. Podobne do wykonania polecenia undo wystarczajaco wiele razy, by przywrocic wiersz do stanu poczatkowego. tilde-expand (M-&) Wykonuje interpretacje tyldy w odniesieniu do biezacego slowa. set-mark (C-@, M-) stawia znacznik (mark) w biezacym punkcie. Jezeli podano argument numeryczny, znacznik jest ustawiany na takiej pozycji. exchange-point-and-mark (C-x C-x) Zamien punkt ze znacznikiem. Aktualna pozycja kursora ustawiana jest na zapamietana, a dotychczasowa pozycja zachowywana jako znacznik. character-search (C-]) Odczytywany jest znak a punkt przesuwa sie na nastepne wystapienie tego znaku. Argument ujemny wyszukuje poprzednie wystapienia. character-search-backward (M-C-]) Odczytywany jest znak a punkt przesuwa sie na poprzednie wystapienie tego znaku. Argument ujemny wyszukuje kolejne wystapienia. skip-csi-sequence Odczytuje wystarczajaco wiele znakow, aby pobrac sekwencje wielu klawiszy, np. zdefiniowana przez klawisze takie jak Home i End. Takie sekwencje zaczynaja sie znacznikiem sekwencji kontrolnej (Control Sequence Indicator - CSI), z reguly ESC-[. Jesli taka sekwencja jest przypisana do "\[", to klawisze wchodzace w sklad tej sekwencji nie beda dzialac (chyba ze zostaly jawnie przypisane do polecenia readline) zamiast wstawiac niepowiazane znaki do bufora edycyjnego. Domyslnie, to polecenie jest nieprzypisane, ale przypisanie powinno przewaznie odnosic sie do ESC-[. insert-comment (M-#) Bez argumentu numerycznego, na poczatek biezacego wiersza wstawiana jest wartosc zmiennej comment-begin readline. Jesli podano numeryczny argument, to polecenia dziala jak przelacznik: jesli znaki na poczatku wiersza nie pasuja do wartosci comment-begin, to wartosc jest wstawiana, w przeciwnym wypadku znaki w comment-begin sa usuwane z poczatku kazdego wiersza. W kazdym przypadku wiersz jest akceptowany tak, jakby wprowadzono znak nowej linii. Domyslna wartosc comment-begin powoduje, ze polecenie to czyni biezacy wiersz komentarzem powloki. Jesli numeryczny argument powoduje usuniecie znaku komentarza, to dany wiersze bedzie wykonany przez powloke. spell-correct-word (C-x s) Perform spelling correction on the current word, treating it as a directory or filename, in the same way as the cdspell shell option. Word boundaries are the same as those used by shell-forward-word. glob-complete-word (M-g) Slowo sprzed kursora jest traktowane jako wzorzec rozwijania nazw plikow, bez jawnego dodania gwiazdki (asterysku). Ten wzorzec moze zostac uzyty do wygenerowania listy pasujacych nazw plikow do mozliwych uzupelnien. glob-expand-word (C-x *) Slowo sprzed kursora traktowane jest jak wzorzec rozwijania nazw plikow i wstawiana jest lista pasujacych nazw, zastepujac slowo-wzorzec. Jesli podano numeryczny argument, to przed rozwijaniem nazw plikow dodawana jest gwiazdka (asterysk). glob-list-expansions (C-x g) Wyswietlana jest lista rozwiniec, jakie zostalyby utworzone przez glob-expand-word, a wiersz jest ponownie wyswietlany. Jesli podano numeryczny argument, to przed rozwijaniem nazw plikow dodawana jest gwiazdka (asterysk). dump-functions Wypisuje do strumienia wyjsciowego readline wszystkie funkcje i ich przypisania klawiszy. Jezeli podano argument numeryczny, wyjscie jest formatowane w taki sposob, by mozna zrobic je czescia pliku inputrc. dump-variables Wypisuje do strumienia wyjsciowego readline wszystkie ustawialne zmienne readline i ich wartosci. Jezeli podano argument numeryczny, wyjscie jest formatowane w taki sposob, by mozna zrobic je czescia pliku inputrc. dump-macros Wypisuje wszystkie sekwencje klawiszy readline przypisane do makr i lancuchy jakie daja w wyniku. Jezeli podano argument numeryczny, wyjscie jest formatowane w taki sposob, by mozna zrobic je czescia pliku inputrc. display-shell-version (C-x C-v) Wyswietla informacje o wersji aktualnego egzemplarza bash. Programowalne uzupelnianie Gdy nastepuje proba uzupelnienia slowa dla argumentu polecenia, dla ktorego zdefiniowano specyfikacje uzupelniania (completion specification, compspec) przy pomocy wbudowanego polecenia complete (zobacz WBUDOWANE POLECENIA POWLOKI ponizej), wywolywane sa uslugi programowalnego uzupelniania. First, the command name is identified. If the command word is the empty string (completion attempted at the beginning of an empty line), any compspec defined with the -E option to complete is used. If a compspec has been defined for that command, the compspec is used to generate the list of possible completions for the word. If the command word is a full pathname, a compspec for the full pathname is searched for first. If no compspec is found for the full pathname, an attempt is made to find a compspec for the portion following the final slash. If those searches do not result in a compspec, any compspec defined with the -D option to complete is used as the default. If there is no default compspec, bash attempts alias expansion on the command word as a final resort, and attempts to find a compspec for the command word from any successful expansion. Po odnalezieniu compspec, jest ono uzywane do utworzenia listy pasujacych slow. Jezeli compspec nie zostalo znalezione, to wykonywane jest domyslne uzupelnianie basha, jak opisano powyzej w Uzupelnianie. Na poczatek, uzywane sa akcje okreslone przez compspec. Zwracane sa wylacznie dopasowania poprzedzone dopasowywanym slowem. Gdy do uzupelniania nazw plikow lub katalogow uzyto opcji -f lub -d, do filtrowania dopasowan wykorzystywana jest zmienna powloki FIGNORE. W nastepnej kolejnosci tworzone sa ewentualne uzupelnienia okreslone przez wzorzec rozwiniecia nazw plikow opcji -G. Slowa tworzone przez wzorzec nie musza pasowac do uzupelnianego slowa. Zmienna powloki GLOBIGNORE nie jest uzywana do filtrowania dopasowan, ale zmienna FIGNORE jest uzywana. Nastepnie, brany jest pod uwage lancuch podany jako argument opcji -W. Lancuch jest najpierw rozbijany przy zastosowaniu znakow ze zmiennej specjalnej IFS jako separatorow. Honorowane jest cytowanie powloki. Pozniej kazde ze slow interpretowane jest z wykorzystaniem interpretacji nawiasow, interpretacji tyld, podstawiania parametrow, interpretacji zmiennych i wyrazen arytmetycznych i podstawiania wynikow polecen, jak opisano powyzej w sekcji INTERPRETACJA. Wyniki sa rozbijane z zastosowaniem regul opisanych powyzej w sekcji Podzial na slowa. Wyniki interpretacji sa dopasowywane przedrostkiem z uzupelnianym slowem, a pasujace slowa staja sie mozliwymi uzupelnieniami. Po utworzeniu tych dopasowan, wywolywana jest funkcja lub polecenie okreslone opcjami -F i -C. Podczas wywolywania polecenia czy funkcji, zmiennym COMP_LINE, COMP_POINT, COMP_KEY i COMP_TYPE przypisywane sa wartosci, jak opisano to powyzej w sekcji Zmienne powloki. Jezeli wywolywana jest funkcja powloki, ustawiane sa rowniez zmienne COMP_WORDS i COMP_CWORD. Kiedy wywolywana jest funkcja czy polecenie, pierwszym argumentem ($1) staje sie nazwa polecenia, ktorego argumenty sa uzupelniane, drugim argumentem ($2) -- uzupelniane slowo, a trzecim slowem ($3) poprzedzajace w wierszu polecen slowo aktualnie uzupelniane. Nie jest wykonywane zadne filtrowanie utworzonych uzupelnien stosownie do uzupelnianego slowa. Funkcja czy polecenie maja pelna swobode tworzenia dopasowan. W pierwszej kolejnosci wywolywana jest funkcja okreslona przez -F. Do tworzenia dopasowan moze ona korzystac z dowolnych mozliwosci powloki, lacznie z opisanym ponizej poleceniem wbudowanym compgen. Funkcja musi umiescic mozliwe uzupelnienia w zmiennej tablicowej COMPREPLY, jedno na element tablicy. Nastepnie, wywolywane jest polecenie okreslone opcja -C, dzialajace w srodowisku rownowaznym podstawianiu polecen. Powinno ono wypisac liste uzupelnien, po jednym w wierszu, na standardowe wyjscie. Jezeli jest to niezbedne, do utworzenia znaku nowej linii mozna uzyc odwroconego ukosnika. Po utworzeniu wszelkich mozliwych uzupelnien, do listy tej stosowany jest filtr okreslony opcja -X. Filtr jest takim wzorcem, jak uzywany przy rozwijaniu nazw sciezkowych. Znak & we wzorcu zastepowany jest tekstem uzupelnianego slowa. Literal & mozna otrzymac poprzedzajac go odwrotnym ukosnikiem; odwrotny ukosnik zostanie usuniety przed proba dopasowania. Wszystkie uzupelnienia pasujace do wzorca beda usuniete z listy. Poczatkowy ! daje zaprzeczenie wzorca. Beda wowczas usuwane uzupelnienia nie pasujace do wzorca. Jesli wlaczona jest opcja powloki nocasematch, to dopasowanie jest wykonywane bez uwzgledniania wielkosci liter. Na koniec, do kazdego elementu listy dodawane sa przedrostek i przyrostek okreslone opcjami -P i -S, a wynik zwracany jest do kodu uzupelniania readline jako lista mozliwych uzupelnien. Jesli poprzednio zastosowane dzialania nie utworzyly zadnych dopasowan, zas przy definiowaniu compspec podano opcje -o dirnames polecenia complete, to dokonywana jest proba uzupelnienia nazwy katalogu. Jesli do complete podano opcje -o plusdir gdy istnieje zdefiniowane compspec, to proba dopasowania nazw katalogow jest przeprowadzana, a ewentualne dopasowania sa dodawane do wynikow innych akcji. Domyslnie, jezeli znaleziono compspec, to cokolwiek ono utworzy zwracane jest do kodu uzupelniajacego jako pelny zestaw mozliwych uzupelnien. Nie sa probowane domyslne uzupelnienia bash, a domyslne uzupelnianie nazw sciezkowych przez readline jest wylaczone. Jesli przy definiowaniu compspec podano opcje -o bashdefault, to jezeli compspec nie utworzy zadnych uzupelnien, wykonane zostanie domyslne uzupelnienia bash. Jesli przy definiowaniu compspec podano opcje -o default polecenia complete, to jezeli compspec nie utworzy zadnych uzupelnien, wykonane zostanie domyslne uzupelnianie z readline (i, jesli probowano domyslnych uzupelnien bash, takze one). Gdy compspec informuje o zadaniu uzupelnienia nazwy katalogu, funkcje programowalnego uzupelnienia wymuszaja na readline dodanie ukosnika, do uzupelnianych nazw bedacych dowiazaniami symbolicznymi do katalogow, ktore sa przedmiotem wartosci zmiennej mark-direstories readline, niezaleznie od ustawienia zmiennej mark-symlinked-directories readline. Istnieje pewna obsluga uzupelnien modyfikowanych dynamicznie. Jest to szczegolnie uzyteczne w kombinacji z domyslnym uzupelnianiem z opcja complete -D. W przypadku funkcji powloki, wykonywanych jako odpowiedzialne za uzupelnianie, mozliwe jest poinformowanie ze uzupelnienie powinno byc ponowione za pomoca kodu zakonczenia rownego 124. Jesli funkcja powloki zwroci 124 i zmieni powiazany compspec poleceniem, ktorego probe uzupelnienia podjeto (podanego jako pierwszy argument gdy funkcja jest wykonywana), programowalne uzupelnianie rozpoczyna od poczatku, probujac znalezc nowy compspec dla polecenia. Pozwala na ustawianie uzupelnien budowanych dynamicznie po wykonanej probie uzupelnienia, zamiast ladowania ich wszystkich naraz. Przykladowo, przyjmujac ze istnieje biblioteka skladajaca sie z compspec, kazda przechowywana w pliku odpowiadajacym nazwie polecenia, to nastepujaca domyslna funkcja uzupelnienia zaladuje uzupelnienia dynamicznie: _completion_loader() { . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124 } complete -D -F _completion_loader -o bashdefault -o default HISTORIA Jezeli wlaczona jest opcja -o history wbudowanego polecenia set, to powloka zapewnia dostep do historii polecen, listy polecen poprzednio wprowadzonych. Wartosc zmiennej HISTSIZE wykorzystywana jest jako liczba polecen do zachowania na liscie historii. Zachowywany jest tekst ostatnich HISTSIZE polecen (domyslnie 500). Powloka przechowuje kazde polecenie na liscie przed podstawieniem wartosci parametrow i zmiennych (zobacz powyzej INTERPRETACJA), ale przed wykonaniem interpretacji historii, w zaleznosci od wartosci zmiennych powloki HISTIGNORE i HISTCONTROL. Przy uruchamianiu, historia inicjowana jest z pliku o nazwie wskazanej zmienna HISTFILE (domyslnie ~/.bash_history). Plik o nazwie wzietej z wartosci HISTFILE jest obcinany, jesli zachodzi potrzeba, by zawieral nie wiecej wierszy niz okreslono to wartoscia zmiennej HISTFILESIZE. Jesli HISTFILESIZE jest nieustawione lub ustawione na zero, wartosc nienumeryczna lub wartosc numeryczna mniejsza od zera, plik historii nie jest obcinany. Gdy plik historii jest odczytywany, wiersze zaczynajace sie od znaku komentarza historii, po ktorym wystepuje bezposrednio cyfra, sa interpretowane jako czasy nastepnego wiersza historii. Czasy te moga byc opcjonalnie wyswietlane, w zaleznosci od wartosci zmiennej HISTTIMEFORMAT. Podczas konczenia pracy powloki z wlaczona historia, ostatnie $HISTSIZE wierszy kopiowane jest z listy historii do $HISTFILE. Jezeli wlaczona jest opcja powloki histappend (zobacz opis shopt w sekcji WBUDOWANE POLECENIA POWLOKI ponizej), to wiersze sa dodawane na koniec pliku historii, w przeciwnym razie plik historii jest nadpisywany. Jezeli HISTFILE nie jest ustawione lub plik historii nie daje sie zapisac, to historia nie jest zachowywana. Jesli zmienna HISTTIMEFORMAT jest ustawiona, to pieczatki czasowe oznaczone znakiem komentarza historii sa zapisywane do pliku historii, tak wiec moga byc one zachowywane pomiedzy sesjami powloki. Znak historii komentarza jest wykorzystywany w celu odroznienia pieczatek czasowych od innych wierszy historii. Po zapisaniu, plik historii jest obcinany, by nie zawieral wiecej niz HISTFILESIZE wierszy. Jesli HISTFILESIZE nie jest ustawione albo jest ustawione na null, wartosc nienumeryczna lub wartosc numeryczna mniejsza od zera, to plik historii nie jest obcinany. Do edycji lub ponownego wykonania czesci listy historii mozna korzystac z wbudowanego polecenia fc (zobacz WBUDOWANE POLECENIA POWLOKI ponizej). Wbudowanego polecenia history mozna uzywac do wyswietlania lub zmiany listy historii i manipulacji plikiem historii. Podczas poslugiwania sie edycja wiersza polecen, w kazdym z trybow edycji umozliwiajacych dostep do listy historii, dostepne sa polecenia przeszukiwania. Powloka umozliwia kontrole nad tym, jakie polecenia sa zachowywane na liscie. Mozna ustawic zmienne HISTCONTROL i HISTIGNORE, co spowoduje, ze powloka bedzie zachowywac tylko podzbior wprowadzonych polecen. Opcja powloki cmdhist, jezeli jest wlaczona, powoduje, ze powloka bedzie usilowac zachowac kazdy wiersz polecenia wielowierszowego w tej samej pozycji historii, dodajac, gdzie jest to niezbedne, sredniki, by zachowac poprawnosc skladni. Opcja powloki lithist powoduje, ze powloka bedzie zachowywac polecenia z osadzonymi znakami nowej linii zamiast srednikow. Zobacz opis wbudowanego shopt ponizej, w sekcji WBUDOWANE POLECENIA POWLOKI, gdzie znajdziesz informacje o ustawianiu i kasowaniu opcji powloki. INTERPRETACJA HISTORII Powloka obsluguje funkcje interpretacji historii, podobna do interpretacji historii w csh. Ta sekcja opisuje dostepne mozliwosci skladni. Funkcja ta jest domyslnie wlaczona dla powlok interaktywnych i moze byc wylaczona przy pomocy opcji +H wbudowanego polecenia set (zobacz ponizej WBUDOWANE POLECENIA POWLOKI). Powloki nie-interaktywne domyslnie nie wykonuja interpretacji historii. Interpretacja historii wprowadza slowa z listy historii do strumienia wejsciowego, ulatwiajac powtarzanie polecen lub poprawianie szybkie bledow w poprzednich poleceniach. History expansion is performed immediately after a complete line is read, before the shell breaks it into words, and is performed on each line individually without taking quoting on previous lines into account. It takes place in two parts. The first is to determine which line from the history list to use during substitution. The second is to select portions of that line for inclusion into the current one. The line selected from the history is the event, and the portions of that line that are acted upon are words. Various modifiers are available to manipulate the selected words. The line is broken into words in the same fashion as when reading input, so that several metacharacter-separated words surrounded by quotes are considered one word. History expansions are introduced by the appearance of the history expansion character, which is ! by default. Only backslash (\) and single quotes can quote the history expansion character, but the history expansion character is also treated as quoted if it immediately precedes the closing double quote in a double-quoted string. Nastepujace znaki powstrzymuja interpretacje historii jesli zostana znalezione bezposrednio za znakiem interpretacji historii, nawet jesli jest niecytowany: spacja, tabulacja, znak nowego wiersza, znak powrotu karetki i =. Jesli wlaczono opcje powloki extglob, to ( rowniez zapobiegnie interpretacji. Kilka opcji powloki ustawianych przy pomocy shopt moze sluzyc do sledzenia dzialania interpretacji historii. Jezeli opcja histverify powloki jest wlaczona (zobacz opis wbudowanego shopt) i uzywane jest readline, to podstawienia historii nie sa natychmiast przesylane do analizatora skladni (parsera) powloki. Zamiast tego, zinterpretowany wiersz jest ponownie ladowany do bufora edycyjnego readline w celu dalszej modyfikacji. Jezeli wykorzystywane jest readline i wlaczona jest opcja histreedit, to zakonczone niepowodzeniem podstawienie historii zostanie ponownie zaladowane do bufora edycyjnego readline w celu poprawienia. Opcja -p wbudowanego polecenia history mozna posluzyc sie do ogladniecia, co zrobi interpretacja historii przed jej zastosowaniem. Opcji -s wbudowanego polecenia history mozna uzyc w celu dodania polecen na koniec listy historii bez faktycznego ich wykonania, tak ze beda dostepne dla nastepnych przywolan. Powloka pozwala na kontrolowanie roznych znakow stosowanych przez mechanizm interpretacji historii (zobacz opis histchars powyzej, w sekcji Zmienne powloki). Do oznaczania pieczatek czasowych, powloka uzywa znaku komentarza historii podczas zapisywania pliku historii. Desygnatory zdarzen (Event Designators) Desygnator zdarzenia jest odwolaniem do pozycji wiersza polecen na liscie historii. O ile odwolanie nie jest absolutne, zdarzenia sa relatywne w stosunku do biezacej pozycji w liscie historii. ! Rozpoczyna podstawianie historii, z wyjatkiem sytuacji, gdy wystepuje po nim odstep, znak nowej linii, = lub ( (gdy wlaczono opcje powloki extglob uzywajac wbudowanego shopt). !n Wskazuje na n-ty wiersz polecen. !-n Wskazuje na wiersz polecen biezacy minus n. !! Wskazuje na poprzednie polecenie. jest to synonim `!-1'. !lancuch Wskazuje na ostatnie poleceniem rozpoczynajace sie od lancucha. !?lancuch[?] Refer to the most recent command preceding the current position in the history list containing string. The trailing ? may be omitted if string is followed immediately by a newline. If string is missing, the string from the most recent search is used; it is an error if there is no previous search string. ^lancuch1^lancuch2^ Szybkie podstawianie. Powtarza ostatnie polecenie, wymieniajac lancuch1 na lancuch2. Rownowaznik ,,!!:s^lancuch1^lancuch2^ (zobacz ponizej Modyfikatory). !# Caly wiersz polecen wpisany do tego momentu. Desygnatory slow (Word Designators) Desygnatory slow sluza do wybierania ze zdarzenia zadanych slow. Dwukropek : oddziela okreslenie zdarzenia od desygnatora slowa. Moze byc pominiety jesli desygnator slowa rozpoczyna sie od ^, $, *, - lub %. Slowa numerowane sa od poczatku wiersza, przy czym pierwsze ma numer 0 (zero). Slowa sa wstawiane do biezacego wiersza, rozdzielane pojedynczymi spacjami. 0 (zero) Slowo zerowe. Dla powloki jest to slowo polecenia. n n-te slowo. ^ Pierwszy argument. To znaczy, slowo 1. $ Ostatnie slowo. Jest to zwykle ostatni argument, ale jest interpretowany jako zerowe slowo, gdy jest tylko jedno slowo w wierszu. % The first word matched by the most recent `?string?' search, if the search string begins with a character that is part of a word. x-y Zakres slow; `-y' jest skroconym `0-y'. * Wszystkie slowa procz zerowego. jest to synonim dla `1-$'. Nie jest bledem uzycie * jesli w zdarzeniu jest tylko jedno slowo; w tym przypadku zwracany jest lancuch pusty. x* Skrot od x-$. x- Skrot od x-$ podobnie jak x*, ale pomija ostatnie slowo. Jesli brak x, przyjmowane jest domyslne 0. jesli desygnator slowa podano bez okreslenia zdarzenia, za zdarzenie przyjmowane jest poprzednie polecenie. Modyfikatory After the optional word designator, there may appear a sequence of one or more of the following modifiers, each preceded by a `:'. These modify, or edit, the word or words selected from the history event. h Usuwa koncowa skladowa nazwy pliku, pozostawiajac tylko poczatek. t Usuwa wszystkie poczatkowe skladowe nazwy pliku, pozostawiajac koniec. r Usuwa konczacy przyrostek postaci .xxx, pozostawiajac glowna czesc nazwy (basename). e Usuwa wszystko procz koncowego przyrostka. p Wypisuje nowe polecenie, ale go nie wykonuje. q Cytuje podstawiane slowa, zabezpieczajac je przed dalszym podstawianiem. x Quote the substituted words as with q, but break into words at blanks and newlines. The q and x modifiers are mutually exclusive; the last one supplied is used. s/stary/nowy/ Substitute new for the first occurrence of old in the event line. Any character may be used as the delimiter in place of /. The final delimiter is optional if it is the last character of the event line. The delimiter may be quoted in old and new with a single backslash. If & appears in new, it is replaced by old. A single backslash will quote the &. If old is null, it is set to the last old substituted, or, if no previous history substitutions took place, the last string in a !?string[?] search. If new is null, each matching old is deleted. & Powtarza poprzednie podstawienie. g Powoduje, ze zmiany zostana zastosowane do calego wiersza zdarzenia. Uzywany w polaczeniu z `:s' (np. `:gs/stary/nowy/') lub `:&'. Jesli uzyty z `:s', to zamiast / mozna posluzyc sie dowolnym separatorem, a ostatni separator jest opcjonalny jezeli jest ostatnim znakiem wiersza zdarzenia. G Apply the following `s' or `&' modifier once to each word in the event line. WBUDOWANE POLECENIA POWLOKI Unless otherwise noted, each builtin command documented in this section as accepting options preceded by - accepts -- to signify the end of the options. The :, true, false, and test/[ builtins do not accept options and do not treat -- specially. The exit, logout, return, break, continue, let, and shift builtins accept and process arguments beginning with - without requiring --. Other builtins that accept arguments but are not specified as accepting options interpret arguments beginning with - as invalid options and require -- to prevent this interpretation. : [argumenty] Bez efektow; polecenie to nie robi niczego poza interpretacja argumentow i wykonaniem ewentualnych podanych przekierowan. Zwracany status to zero. . plik [argumenty] source plik [argumenty] Read and execute commands from filename in the current shell environment and return the exit status of the last command executed from filename. If filename does not contain a slash, filenames in PATH are used to find the directory containing filename, but filename does not need to be executable. The file searched for in PATH need not be executable. When bash is not in posix mode, it searches the current directory if no file is found in PATH. If the sourcepath option to the shopt builtin command is turned off, the PATH is not searched. If any arguments are supplied, they become the positional parameters when filename is executed. Otherwise the positional parameters are unchanged. If the -T option is enabled, . inherits any trap on DEBUG; if it is not, any DEBUG trap string is saved and restored around the call to ., and . unsets the DEBUG trap while it executes. If -T is not set, and the sourced file changes the DEBUG trap, the new value is retained when . completes. The return status is the status of the last command exited within the script (0 if no commands are executed), and false if filename is not found or cannot be read. alias [-p] [nazwa[=wartosc] ...] Alias bez argumentow badz z opcja -p wypisuje na standardowym wyjsciu liste aliasow w postaci alias nazwa=wartosc. Jesli nie dostarczono argumentow, to definiowany jest alias (synonim) dla kazdej nazwy, dla ktorej podano wartosc. Poczatkowa spacja w wartosci powoduje, ze podczas interpretacji aliasu nastepne slowo bedzie sprawdzane na podstawianie aliasow. Dla kazdej nazwy z listy argumentow, dla ktorej nie podano wartosci, wypisywana jest nazwa i wartosc aliasu. Alias zwraca prawde, chyba ze podano nazwe, dla ktorej nie zostal zdefiniowany zaden alias. bg [spec_zad] Wznawia w tle zawieszone zadanie spec_zad, tak jakby zostalo ono uruchomione z &. Jesli spec_zad nie wystepuje, to uzywane jest biezace zadanie, okreslone tak, jak je pojmuje powloka. bg spec_zad zwraca 0, chyba ze uruchomiono je przy wylaczonej kontroli zadan (job control) lub uruchomiono z wlaczona kontrola zadan, jesli nie znaleziono spec_zad lub uruchomiono bez kontroli zadan. bind [-m mapa-klawiszy] [-lpsvPSVX] bind [-m mapa-klawiszy] [-q funkcja] [-u funkcja] [-r sekw_klaw] bind [-m mapa-klawiszy] -f plik bind [-m mapa-klawiszy] -x sekw_klaw:polec_powloki bind [-m mapa-klawiszy] sekw_klaw:nazwa_funkcji bind [-m mapa-klawiszy] sekw_klaw:polec_readline bind readline-command-line Display current readline key and function bindings, bind a key sequence to a readline function or macro, or set a readline variable. Each non-option argument is a command as it would appear in a readline initialization file such as .inputrc, but each binding or command must be passed as a separate argument; e.g., '"\C-x\C-r": re-read-init-file'. Options, if supplied, have the following meanings: -m mapa-klawiszy Wykorzystuje mape-klawiszy jako mape klawiszy, do ktorej maja byc zastosowane nastepne przypisania. Akceptowanymi nazwami map-klawiszy sa emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command i vi-insert. vi rownowazne jest vi-command (synonimem jest tez vi-move); emacs jest rownowazne emacs-standard. -l Podaje nazwy wszystkich funkcji readline. -p Wyswietla nazwy funkcji i przypisania w taki sposob, ze moga byc ponownie odczytane. -P Podaje biezace przypisania i nazwy funkcji readline. -s Wyswietla nazwy i wartosci zmiennych readline w taki sposob, ze moga byc ponownie odczytane. -S Wyswietla sekwencje klawiszy readline przypisane do makr i lancuchy jakie one wysylaja. -v Wyswietla sekwencje klawiszy readline przypisane do makr i lancuchy jakie one wysylaja w taki sposob, ze moga byc ponownie odczytane. -V Podaje biezace nazwy i wartosci zmiennych readline. -f plik Czyta przypisania klawiszy z pliku. -q funkcja Podaje, ktore klawisze wywoluja podana funkcje. -u funkcja Odwoluje przypisania wszystkich klawiszy przypisanych do danej funkcji. -r sekw_klaw Usuwa biezace przypisania dla sekwencji klawiszy. -x sekw_klaw:polec_powloki Cause shell-command to be executed whenever keyseq is entered. When shell-command is executed, the shell sets the READLINE_LINE variable to the contents of the readline line buffer and the READLINE_POINT and READLINE_MARK variables to the current location of the insertion point and the saved insertion point (the mark), respectively. The shell assigns any numeric argument the user supplied to the READLINE_ARGUMENT variable. If there was no argument, that variable is not set. If the executed command changes the value of any of READLINE_LINE, READLINE_POINT, or READLINE_MARK, those new values will be reflected in the editing state. -X Wypisuje wszystkie sekwencje klawiszy przypisane do polecen powloki i powiazane polecenia w formacie, ktory mozna uzyc ponownie jako wejscie. Zwracana jest wartosc 0, chyba ze podano nierozpoznana opcje lub pojawil sie blad. break [n] Opuszcza petle for, while, until lub select. Jezeli podano n, przerywa dzialanie do n-tego poziomu. n musi byc >= 1. Jezeli n jest wieksze od liczby obejmujacych polecenie petli, to konczone sa wszystkie obejmujace petle. Wartoscia zwracana jest 0, chyba ze powloka nie wykonuje petli podczas wykonania break. builtin wbudowane [argumenty] Wykonuje zadane polecenie wbudowane powloki, przesylajac mu argumenty i zwraca jego kod zakonczenia. Przydatne podczas definiowania funkcji o nazwie tozsamej z nazwa wbudowanego polecenia powloki, zachowujac funkcjonalnosc polecenia wbudowanego wewnatrz funkcji. Wbudowane cd jest powszechnie redefiniowane w ten sposob. Kodem zakonczenia jest falsz jesli wbudowane nie jest wbudowanym poleceniem powloki. caller [wyrazenie] Zwraca kontekst aktywnego wywolania podprogramu (funkcji powloki lub skryptu wykonywanego wbudowanymi poleceniami . lub source). Bez wyrazenia, caller wyswietla numer wiersza i plik zrodlowy biezacego wywolania podprogramu. Jesli do wyrazenia przekazano nieujemna liczbe calkowita, to caller wyswietla numer wiersza, nazwe podprogramu i plik zrodlowy zwiazany z pozycja w biezacym stosie wywolania. Te dodatkowe informacje moga byc uzyte np. do wyswietlenia stosu wywolania. Biezaca ramka jest ramka 0. Zwracana wartoscia jest 0, chyba ze powloka nie wykonuje wywolania podprogramu lub wyrazenie nie odnosi sie do prawidlowej pozycji w stosie wywolania. cd [-L|[-P [-e]] [-@]] [katalog] Change the current directory to dir. if dir is not supplied, the value of the HOME shell variable is the default. The variable CDPATH defines the search path for the directory containing dir: each directory name in CDPATH is searched for dir. Alternative directory names in CDPATH are separated by a colon (:). A null directory name in CDPATH is the same as the current directory, i.e., ".". If dir begins with a slash (/), then CDPATH is not used. The -P option causes cd to use the physical directory structure by resolving symbolic links while traversing dir and before processing instances of .. in dir (see also the -P option to the set builtin command); the -L option forces symbolic links to be followed by resolving the link after processing instances of .. in dir. If .. appears in dir, it is processed by removing the immediately previous pathname component from dir, back to a slash or the beginning of dir. If the -e option is supplied with -P, and the current working directory cannot be successfully determined after a successful directory change, cd will return an unsuccessful status. On systems that support it, the -@ option presents the extended attributes associated with a file as a directory. An argument of - is converted to $OLDPWD before the directory change is attempted. If a non-empty directory name from CDPATH is used, or if - is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output. If the directory change is successful, cd sets the value of the PWD environment variable to the new directory name, and sets the OLDPWD environment variable to the value of the current working directory before the change. The return value is true if the directory was successfully changed; false otherwise. command [-pVv] polecenie [arg ...] Uruchamia polecenie z argumentami zakazujac zwyklego wyszukiwania funkcji przez powloke. Wykonywane sa wylacznie polecenia wbudowane i polecenia znalezione w PATH. Jezeli podano opcje -p, wyszukiwanie polecenia wykonywane jest przy uzyciu domyslnej PATH, ktora gwarantuje znalezienie wszystkich standardowych narzedzi. Jesli uzyto albo opcji -V albo -v, to wypisywany jest opis polecenia. Opcja -v powoduje, ze zostanie wyswietlone pojedyncze slowo wskazujace polecenie lub nazwe pliku, uzyte do wywolania polecenia; opcja -V tworzy bardziej obszerny opis. Jezeli podano opcje -V lub -v, to kodem zakonczenia jest 0 gdy odnaleziono polecenie, zas 1 gdy nie. Jesli nie podano zadnej z tych opcji i pojawil sie blad lub nie mozna znalezc polecenia, to kod zakonczenia wynosi 127. W przeciwnym wypadku kodem zakonczenia wbudowanego polecenia command jest kod zakonczenia polecenia. compgen [opcja] [slowo] Tworzy mozliwe dopasowania uzupelnien dla slowa zgodnie z opcjami, ktore moga byc dowolnymi z opcji akceptowanych przez wbudowane polecenie complete, z wyjatkiem -p i -r, i wypisuje dopasowania na standardowe wyjscie. Przy stosowaniu opcji -F lub -C, rozne zmienne powloki ustawiane przez uslugi programowalnego uzupelniania, gdy sa dostepne, nie beda miec uzytecznych wartosci. Dopasowania beda tworzone w ten sam sposob, jakby kod uzupelniania programowalnego tworzyl je wprost ze specyfikacji uzupelniania z tymi samymi flagami. Jezeli podano slowo, to wyswietlone zostana wylacznie uzupelnienia don pasujace. Wartoscia zwracana jest prawda, chyba ze podano niepoprawna opcje lub nie zostaly utworzone zadne dopasowania. complete [-abcdefgjksuv] [-o opcjacomp] [-DEI] [-A akcja] [-G wzglob] [-W listaslow] [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name ...] complete -pr [-DEI] [nazwa ...] Specify how arguments to each name should be completed. If the -p option is supplied, or if no options are supplied, existing completion specifications are printed in a way that allows them to be reused as input. The -r option removes a completion specification for each name, or, if no names are supplied, all completion specifications. The -D option indicates that other supplied options and actions should apply to the "default" command completion; that is, completion attempted on a command for which no completion has previously been defined. The -E option indicates that other supplied options and actions should apply to "empty" command completion; that is, completion attempted on a blank line. The -I option indicates that other supplied options and actions should apply to completion on the initial non-assignment word on the line, or after a command delimiter such as ; or |, which is usually command name completion. If multiple options are supplied, the -D option takes precedence over -E, and both take precedence over -I. If any of -D, -E, or -I are supplied, any other name arguments are ignored; these completions only apply to the case specified by the option. The process of applying these completion specifications when word completion is attempted is described above under Programmable Completion. Pozostale opcje, jesli je podano, maja nizej opisane znaczenie. Argumenty opcji -G, -W i -X (i, jesli to niezbedne, -P i -S) powinny byc cytowane dla ochrony przed interpretacja jaka wystapi zanim zostanie wywolane polecenie complete. -o opcjacomp Wartosc opcjacomp reguluje kilka aspektow zachowania sie compspec wykraczajacych poza zwykle tworzenie uzupelnien. opcjacomp przyjmuje jedna z wartosci: bashdefault Wykonuje pozostale z domyslnych uzupelnien bash, jesli compspec nie utworzy zadnych dopasowan. default Stosuje domyslne uzupelnianie readline jesli compspec nie utworzy zadnych dopasowan. dirnames Wykonuje uzupelnianie nazw katalogow jesli compspec nie utworzy zadnych dopasowan. filenames Powiadamia readline, ze compspec tworzy nazwy plikow, zatem moze wykonac przetwarzanie specyficzne dla takich nazw (jak dodanie ukosnika do nazw katalogow czy usuniecie koncowych spacji). Zaprojektowane do stosowania z funkcjami powloki. noquote Przekazuje readline, aby nie cytowalo uzupelnianych slow, jesli sa nazwami plikow (domyslnie nazwy plikow sa cytowane). nosort Przekazuje readline, aby nie sortowalo alfabetycznie listy dostepnych uzupelnien. nospace Przekazuje readline, aby nie dodawalo spacji (domyslnie) do uzupelnionych slow, na koncu wiersza. plusdirs Po utworzeniu dopasowan zdefiniowanych przez compspec, przeprowadzana jest proba dopasowania nazw katalogow, a ewentualne dopasowania sa dodawane do wynikow innych akcji. -A akcja akcja moze byc jedna z ponizszych, tworzacych liste mozliwych dopasowan: alias Nazwy aliasow. Mozna tez podac jako -a. arrayvar Nazwy zmiennych tablicowych. binding Nazwy przypisan klawiszy readline. builtin Nazwy wbudowanych polecen powloki. Mozna tez podac jako -b. command Nazwy polecen. Mozna tez podac jako -c. directory Nazwy katalogow. Mozna tez podac jako -d. disabled Nazwy wylaczonych polecen wbudowanych powloki. enabled Nazwy wlaczonych polecen wbudowanych powloki. export Nazwy wyeksportowanych zmiennych powloki. Mozna tez podac jako -e. file Nazwy plikow. Mozna tez podac jako -f. function Nazwy funkcji powloki. group Nazwy grup. Mozna tez podac jako -g. helptopic Tematy pomocy akceptowane przez wbudowane polecenie help. hostname Nazwy hostow, pobrane z pliku okreslonego przez zmienna powloki HOSTFILE. job Nazwy zadan, jezeli aktywne jest sterowanie zadaniami. Mozna tez podac jako -j. keyword Zastrzezone slowa powloki. Mozna tez podac jako -k. running Nazwy dzialajacych zadan, jezeli aktywne jest sterowanie zadaniami. service Nazwy uslug. Mozna tez podac jako -s. setopt Dozwolone argumenty opcji -o polecenia wbudowanego set. shopt Nazwy opcji powloki, takie, jakie akceptuje polecenie wbudowane shopt. signal Nazwy sygnalow. stopped Nazwy zatrzymanych zadan, jesli aktywne jest sterowanie zadaniami. user Nazwy uzytkownikow. Mozna tez podac jako -u. variable Nazwy wszystkich zmiennych powloki. Mozna tez podac jako -v. -C polecenie polecenie jest wykonywane w srodowisku podpowloki, a jego wyjscie jest uzywane jako mozliwe uzupelnienia. Argumenty przekazuje sie opcja -F. -F funkcja Funkcja powloki funkcja jest wykonywana w biezacym srodowisku powloki. Gdy funkcja jest wykonywana, pierwszy argument ($1) jest nazwa polecenia, ktorego argumenty sa uzupelniane, drugim argumentem ($2) jest uzupelniane slowo, a trzecim ($3) jest slowo poprzedzajace uzupelniane slowo w biezacym wierszu polecenia. Po zakonczeniu, mozliwe uzupelnienia sa pozyskiwane z wartosci zmiennej tablicowej COMPREPLY. -G wzglob Wzorzec rozwijania nazw plikow wzglob jest rozwijany, tworzac liste mozliwych uzupelnien. -P przedrostek na poczatku kazdego z mozliwych uzupelnien, po zastosowaniu wszystkich innych opcji, dodawany jest przedrostek. -S przyrostek na koncu kazdego z mozliwych uzupelnien, po zastosowaniu wszystkich innych opcji, dodawany jest przyrostek. -W listaslow The wordlist is split using the characters in the IFS special variable as delimiters, and each resultant word is expanded. Shell quoting is honored within wordlist, in order to provide a mechanism for the words to contain shell metacharacters or characters in the value of IFS. The possible completions are the members of the resultant list which match the word being completed. -X wzfiltr wzfiltr jest wzorcem uzywanym do rozwijania nazw plikow. Stosowany jest do listy mozliwych uzupelnien utworzonej przez poprzedzajace go opcje i argumenty, a kazde pasujace do niego uzupelnienie jest usuwane z listy. Poczatkowy ! w wzfiltr powoduje negacje wzorca; usuwane sa wowczas uzupelnienia nie pasujace do wzfiltr. Wartoscia zwracana jest prawda, chyba ze podano niepoprawna opcje, podano bez argumentu nazwa opcje inna niz -p lub -r, usilowano usunac specyfikacje uzupelniania dla nazwy, dla ktorej nie istnieje zadna specyfikacja, albo tez podczas dodawania specyfikacji uzupelniania wystapil blad. compopt [-o opcja] [-DEI] [+o opcja] [nazwa] Modify completion options for each name according to the options, or for the currently-executing completion if no names are supplied. If no options are given, display the completion options for each name or the current completion. The possible values of option are those valid for the complete builtin described above. The -D option indicates that other supplied options should apply to the "default" command completion; that is, completion attempted on a command for which no completion has previously been defined. The -E option indicates that other supplied options should apply to "empty" command completion; that is, completion attempted on a blank line. The -I option indicates that other supplied options should apply to completion on the initial non-assignment word on the line, or after a command delimiter such as ; or |, which is usually command name completion. Zwracana wartoscia jest prawda, chyba ze podano nieprawidlowa opcje, przeprowadzono probe zmodyfikowania opcji dla nazwy, dla ktorej nie istnieje specyfikacja uzupelniania lub wystapil blad wyjscia. continue [n] Wznawia nastepna iteracje obejmujacej je petli for, while, until lub select. Jezeli podano n, wznawia n-ta obejmujaca petle. n musi byc >= 1. Jezeli n jest wieksze niz liczba obejmujacych petli, to wznawiana jest ostatnia z petli (,,najwyzsza"). Wartosc zwracana wynosi 0, chyba ze powloka nie wykonuje petli podczas wykonywania continue. declare [-aAfFgiIlnrtux] [-p] [nazwa[=wartosc] ...] typeset [-aAfFgiIlnrtux] [-p] [nazwa[=wartosc] ...] Declare variables and/or give them attributes. If no names are given then display the values of variables. The -p option will display the attributes and values of each name. When -p is used with name arguments, additional options, other than -f and -F, are ignored. When -p is supplied without name arguments, it will display the attributes and values of all variables having the attributes specified by the additional options. If no other options are supplied with -p, declare will display the attributes and values of all shell variables. The -f option will restrict the display to shell functions. The -F option inhibits the display of function definitions; only the function name and attributes are printed. If the extdebug shell option is enabled using shopt, the source file name and line number where each name is defined are displayed as well. The -F option implies -f. The -g option forces variables to be created or modified at the global scope, even when declare is executed in a shell function. It is ignored in all other cases. The -I option causes local variables to inherit the attributes (except the nameref attribute) and value of any existing variable with the same name at a surrounding scope. If there is no existing variable, the local variable is initially unset. The following options can be used to restrict output to variables with the specified attribute or to give variables attributes: -a Kazda z nazw jest indeksowana zmienna tablicowa (zobacz Tablice). above). -A Kazda z nazw jest asocjacyjna zmienna tablicowa (zobacz Tablice). above). -f Uzywa wylacznie nazw funkcji. -i The variable is treated as an integer; arithmetic evaluation (see ARITHMETIC EVALUATION above) is performed when the variable is assigned a value. -l Gdy zmiennej przypisano wartosc, wszystkie wielkie litery sa zamieniane na male. Przypisania za pomoca wielkich liter sa wylaczone. -n Nadaje kazdej nazwie atrybut nazwa referencyjna, czyniac ja nazwa referencyjna odnoszaca sie do innej zmiennej. Ta inna zmienna jest definiowana w wartosci nazwy. Wszystkie odniesienia i przypisania i modyfikacje atrybutow nazwy, z wyjatkiem tych uzywajacych lub zmieniajacych sam atrybut -n sa wykonywane na zmiennej do ktorej odnosi sie wartosc nazwy. Atrybutu nazwa referencyjna nie mozna zastosowac do zmiennych tablicowych. -r Powoduje, ze dane nazwy staja sie tylko-do-odczytu (readonly). Nazwom tym nie mozna przypisac wartosci nastepnymi poleceniami przypisania. Nie mozna tez ich usunac za pomoca unset. -t Nadaje kazdej nazwie atrybut trace. Funkcje z tym atrybutem dziedzicza pulapki DEBUG i RETURN z wywolujacej je funkcji. Atrybut ten nie ma specjalnego znaczenia dla zmiennych. -u Gdy zmiennej przypisano wartosc, wszystkie male litery sa zamieniane na wielkie. Przypisania za pomoca malych liter sa wylaczone. -x Zaznacza nazwe do wyeksportowania przez srodowisko do kolejnych polecen. Using `+' instead of `-' turns off the attribute instead, with the exceptions that +a and +A may not be used to destroy array variables and +r will not remove the readonly attribute. When used in a function, declare and typeset make each name local, as with the local command, unless the -g option is supplied. If a variable name is followed by =value, the value of the variable is set to value. When using -a or -A and the compound assignment syntax to create array variables, additional attributes do not take effect until subsequent assignments. The return value is 0 unless an invalid option is encountered, an attempt is made to define a function using ``-f foo=bar'', an attempt is made to assign a value to a readonly variable, an attempt is made to assign a value to an array variable without using the compound assignment syntax (see Arrays above), one of the names is not a valid shell variable name, an attempt is made to turn off readonly status for a readonly variable, an attempt is made to turn off array status for an array variable, or an attempt is made to display a non-existent function with -f. dirs [-clpv] [+n] [-n] Bez opcji wyswietla liste aktualnie zapamietanych katalogow. Domyslnie wyswietlana jest ona w pojedynczym wierszu, z nazwami katalogow rozdzielonymi spacjami. Katalogi dodawane sa do listy poleceniem pushd polecenie popd usuwa pozycje z listy. Biezacy katalog jest zawsze pierwszy na stosie. -c Czysci stos katalogow usuwajac wszystkie jego pozycje. -l Tworzy listing uzywajac pelnych sciezek; domyslnie format listingu posluguje sie tylda do oznaczania katalogu domowego. -p Wypisuje stos katalogow po jednej pozycji na wiersz. -v Wypisuje stos katalogow po jednej pozycji na wiersz, poprzedzajac kazda z nich jej pozycja (indeksem) w stosie. +n Wyswietla nta pozycje liczac od lewej na liscie pokazywanej przez dirs przy wywolaniu bez opcji; poczatkowa jest zero. -n Wyswietla nta pozycje liczac od prawej na liscie pokazywanej przez dirs przy wywolaniu bez opcji; poczatkowa jest zero. Wartoscia zwracana jest 0, chyba ze podano nieprawidlowa opcje lub n wskazuje poza koniec stosu katalogow. disown [-ar] [-h] [zadanie ... | pid ... ] Bez opcji, usuwa kazde z podanych zadan z tablicy zadan aktywnych. Jesli nie podano zadania i nie uzyto ani opcji -a ani -r, to uzywane jest zadanie biezace. Jesli uzyto opcji -h, kazde zadanie nie jest usuwane z tablicy, ale jest jako takie zaznaczane, tak ze do zadania nie jest wysylany sygnal SIGHUP jesli powloka otrzymuje SIGHUP. Jezeli podano zadanie, opcja -a oznacza usuniecie lub zaznaczenie wszystkich zadan; opcja -r bez argumentu zadania ogranicza akcje do dzialajacych zadan. Wartoscia zwracana jest 0, chyba ze zadanie nie okresla poprawnego zadania. echo [-neE] [argument ...] Wyswietla argumenty, rozdzielone spacjami, zakonczone znakiem nowej linii. Kodem zakonczenia jest zawsze 0, chyba ze wystapi blad zapisu. Jezeli podano -n, to nie jest wysylany konczacy znak nowej linii. Jezeli podano opcje -e, wlaczana jest interpretacja podanych nizej znakow specjalnych. Opcja -E wylacza interpretacje tych znakow, nawet na systemach, gdzie sa one domyslnie interpretowane. Do dynamicznego sprawdzania, czy echo interpretuje domyslnie te znaki, czy nie, sluzy opcja powloki xpg_echo. echo nie interpretuje -- jako oznaczenia konca opcji. echo interpretuje nastepujace sekwencje specjalne: \a alarm (dzwonek) \b backspace \c pomin konczacy znak nowej linii \e \E znak escape \f znak wysuwu strony (form feed) \n znak nowego wiersza (new line) \r powrot karetki \t tabulacja pozioma (horizontal tab) \v tabulacja pionowa (vertical tab) \\ odwrotny ukosnik (backslash) \0nnn osmiobitowy znak, ktorego wartoscia jest osemkowa liczba nnn (jedna do trzech cyfr) \xHH osmiobitowy znak, ktorego wartoscia jest szesnastkowa liczba nnn (jedna lub dwie cyfry szesnastkowe) \uHHHH znak Unicode (ISO/IEC 10646) o wartosci szesnastkowej HHHH (jedna do czterech cyfr szesnastkowych) \UHHHHHHHH znak Unicode (ISO/IEC 10646) o wartosci szesnastkowej HHHHHHHH (jedna do osmiu cyfr szesnastkowych) enable [-a] [-dnps] [-f plik] [nazwa ...] Wlacza i wylacza wbudowane polecenia powloki. Wylaczenie polecen wbudowanych umozliwia wykonanie polecenia dyskowego majacego te sama nazwe, co wbudowane, bez podawania jego pelnej nazwy sciezkowej, mimo iz powloka normalnie szuka polecen wbudowanych przed poleceniami dyskowymi. Jezeli posluzono sie opcja -n, wylaczana jest kazda z nazw; w przeciwnym razie nazwy sa wlaczone. Na przyklad, chcac uzyc pliku binarnego test znalezionego przez PATH zamiast wersji wbudowanej w powloke, nalezy uruchomic ``enable -n test''. The -f option means to load the new builtin command name from shared object filename, on systems that support dynamic loading. Bash will use the value of the BASH_LOADABLES_PATH variable as a colon-separated list of directories in which to search for filename. The default is system-dependent. The -d option will delete a builtin previously loaded with -f. If no name arguments are given, or if the -p option is supplied, a list of shell builtins is printed. With no other option arguments, the list consists of all enabled shell builtins. If -n is supplied, only disabled builtins are printed. If -a is supplied, the list printed includes all builtins, with an indication of whether or not each is enabled. If -s is supplied, the output is restricted to the POSIX special builtins. If no options are supplied and a name is not a shell builtin, enable will attempt to load name from a shared object named name, as if the command were ``enable -f name name . The return value is 0 unless a name is not a shell builtin or there is an error loading a new builtin from a shared object. eval [argument ...] Argumenty sa czytane i laczone w pojedyncze polecenie. Polecenie to jest nastepnie odczytywane i wykonywane przez powloke, zas jego kod zakonczenia jest zwracany jako wartosc eval. Jezeli nie na zadnych argumentow, lub wszystkie argumenty sa puste, eval zwraca 0. exec [-cl] [-a nazwa] [polecenie [argumenty]] Jezeli podano polecenie, zastepuje ono powloke. Nie tworzony jest zaden nowy proces. Argumenty staja sie argumentami polecenia. Jesli podano opcje -l, umieszcza kreske na poczatku zerowego argumentu przesylanego do polecenia. Tak samo, jak robi to login(1). Opcja -c powoduje, ze polecenie zostanie wykonane z pustym srodowiskiem. Jezeli podano -a, powloka przesyla do wykonywanego polecenia nazwe jako zerowy argument. Jezeli polecenie z jakiegos powodu nie moze zostac wykonane, to powloka nie-interaktywna konczy prace, chyba ze wlaczona jest opcja powloki execfail, wowczas zwraca niepowodzenie. Powloka interaktywna zwraca niepowodzenie jesli plik nie moze zostac wykonany. Jesli exec zawiedzie, podpowloka bezwzglednie wyjdzie. Jezeli nie podano polecenia, przekierowania skutkuja w biezacej powloce, a kodem zakonczenia jest 0. W przypadku bledu przekierowania kod zakonczenia wynosi 1. exit [n] Powoduje, ze powloka konczy prace z kodem rownym n. Jesli pominieto n, kodem zakonczenia jest kod ostatniego wykonanego polecenia. Przed koncem pracy powloki wykonywane jest przechwycenie sygnalu EXIT. export [-fn] [nazwa[=slowo]] ... export -p Podane nazwy zaznaczane sa do automatycznego wyeksportowania do srodowiska nastepnych wykonywanych polecen. Jesli podano opcje -f, to nazwy odnosza sie do funkcji. Jezeli nie podano zadnych nazw lub jezeli podano opcje -p, to wypisywana jest lista nazw wszystkich eksportowanych w tej powloce zmiennych. Opcja -n powoduje usuniecie cechy eksportowania z podanych zmiennych. Jesli po nazwie zmiennej wystepuje =slowo, to wartosc zmiennej jest ustawiana na slowo. export zwraca zerowy kod zakonczenia, chyba ze napotkano nieprawidlowa opcje, jedna z nazw nie jest poprawna nazwa zmiennej powloki lub podano -f z nazwa, ktora nie jest funkcja. fc [-e nazwa_e] [-lnr] [pierwsze] [ostatnie] fc -s [wzorzec=zastapienie] [polecenie] The first form selects a range of commands from first to last from the history list and displays or edits and re-executes them. First and last may be specified as a string (to locate the last command beginning with that string) or as a number (an index into the history list, where a negative number is used as an offset from the current command number). When listing, a first or last of 0 is equivalent to -1 and -0 is equivalent to the current command (usually the fc command); otherwise 0 is equivalent to -1 and -0 is invalid. If last is not specified, it is set to the current command for listing (so that ``fc -l -10'' wypisuje ostatnich 10 polecen) i na pierwsze w pozostalych przypadkach. Jezeli nie okreslono pierwszego polecenia, to jest ono ustawiane na poprzednie polecenie w przypadku edycji a na -16 przy listowaniu. Opcja -n wstrzymuje wyswietlanie numerow polecen podczas listowania. Opcja -r odwraca kolejnosc polecen. Jezeli podano opcje -l, to polecenia listowane sa na standardowym wyjsciu. W przeciwnym razie dla pliku zawierajacego te polecenia wywolywany jest edytor podany przez nazwa_e. Jezeli nie podano nazwa_e, uzywana jest wartosc FCEDIT, a wartosc EDITOR jesli nie ustawiono FCEDIT. Jezeli nie ustawiono zadnej z nich, uzywany jest vi Po zakonczeniu edycji, wysylane edytowane polecenia sa wyswietlane przez echo i wykonywane. W drugiej postaci, polecenie jest ponownie wykonywane po kazdej wymianie wystapienia wzorca przez zastapienie. Polecenie jest interpretowane podobnie jak pierwsze powyzej. Przydatnym aliasem do wykorzystania z ta forma jest ``r="fc -s"'', tak, ze napisanie ``r cc'' uruchamia ostatnie polecenie rozpoczynajace sie od ``cc'' a napisanie ``r'' ponownie wykonuje ostatnie polecenie. Jezeli uzyta zostala pierwsza postac, to wartoscia zwracana jest 0, chyba ze napotkano nieprawidlowa opcje lub pierwszy albo ostatni okreslaja wiersze historii spoza zakresu. Jezeli podano opcje -e, wartoscia zwracana jest wartosc ostatniego wykonanego polecenia lub niepowodzenie jesli pojawil sie blad tymczasowego pliku polecen. Jezeli uzyta zostala druga postac, to zwracanym kodem jest kod ponownie wykonanego polecenia, chyba ze polecenie nie okresla poprawnego wiersza polecen -- wowczas fc zwraca porazke. fg [zadanie] Wznawia zadanie na pierwszym planie i czyni je zadaniem biezacym. Jezeli nie podano zadania, uzywane jest biezace zadanie w pojeciu powloki. Wartoscia zwracana jest wartosc polecenia umieszczonego na pierwszym planie, lub porazka jezeli fb uruchomiono przy wylaczonej kontroli zadan, lub uruchomiono je przy wlaczonej kontroli zadan, ale zadanie nie okresla prawidlowego zadania lub zadanie okresla zadanie, ktore zostalo uruchomione bez kontroli zadan. getopts lancuch_opcji nazwa [argument ...] getopts uzywane jest przez procedury powloki do analizy parametrow pozycyjnych. Lancuch opcji zawiera znaki opcji, jakie maja byc rozpoznawane; jezeli po znaku wystepuje dwukropek, to oczekuje sie, ze opcja bedzie posiadac argument, ktory powinien byc od niej oddzielony bialym znakiem. Jako znaki opcji nie moga wystapic dwukropek i znak zapytania. Przy kazdym wywolaniu getopts umieszcza nastepna opcje w zmiennej powloki nazwa, inicjujac nazwe jesli nie istniala. Indeks nastepnego argumentu do przetwarzania umieszczany jest w zmiennej OPTIND. OPTIND inicjowany jest na 1 za kazdym razem, gdy wywolywana jest powloka lub skrypt powloki. Gdy opcja wymaga argumentu, getopts umieszcza go w zmiennej OPTARG. Powloka nie resetuje OPTIND automatycznie; musi byc on resetowany recznie pomiedzy wielokrotnymi odwolaniami do getopts w tym samym wywolaniu powloki, jesli uzywany ma byc nowy zestaw parametrow. Po napotkaniu konca opcji, getopts konczy prace zwracajac wartosc wieksza od zera. OPTIND ustawiane jest na indeks pierwszego argumentu nie bedacego opcja, zas nazwa ustawiana jest na ?. getopts normally parses the positional parameters, but if more arguments are supplied as arg values, getopts parses those instead. getopts moze zglaszac bledy na dwa sposoby. Jezeli pierwszym znakiem lancucha opcji jest dwukropek, to stosowane jest ciche (silent) zglaszanie bledow. Przy zwyklej pracy komunikaty diagnostyczne wypisywane sa przy napotkaniu nieprawidlowych opcji lub brakujacych argumentow opcji. Jezeli zmienna OPTERR ustawiona jest na 0, nie beda wyswietlane zadne komunikaty bledow, nawet jesli pierwszym znakiem lancucha opcji nie jest dwukropek. Przy napotkaniu nieprawidlowej opcji getopts umieszcza ? w nazwie i, jesli nie pracuje w trybie cichym, wypisuje komunikat bledu i kasuje OPTARG. Jezeli getopts pracuje w trybie cichym, to znaleziony znak opcji umieszczany jest w OPTARG i nie jest wypisywany zaden komunikat diagnostyczny. Jesli nie znaleziono wymaganego argumentu, a getopts nie pracuje w trybie cichym, w nazwa umieszczany jest znak zapytania (?), kasowane jest OPTARG i wyswietlany jest komunikat bledu. Jezeli getopts pracuje w trybie cichym, to w nazwie umieszczany jest dwukropek (:), a OPTARG ustawiane jest na znaleziony znak opcji. getopts zwraca prawde, jesli znaleziono okreslona lub nie okreslona opcje. Zwraca falsz jezeli napotkano koniec opcji lub pojawil sie blad. hash [-lr] [-p plik] [-dt] [nazwa] Dla kazdej nazwy okreslana i zapamietywana jest pelna nazwa plikowa polecenia wyszukanego w katalogach $PATH. Jezeli podano opcje -p, nie jest wykonywane przeszukanie sciezki, a plik uzywane jest jako pelna nazwa pliku polecenia. Opcja -r powoduje, ze powloka zapomina wszystkie zapamietane wczesniej miejsca. Opcja -d powoduje, ze powloka zapomina wszystkie zapamietane wczesniej miejsca dla kazdej nazwy. Jesli podano opcje -t, to wypisywana jest odpowiadajaca nazwie pelna nazwa pliku. Jezeli przy wiecej niz jednym argumencie nazwy podano -t, to przed kazda przechowywana pelna nazwa wypisywana jest nazwa. Opcja -l powoduje wyswietlanie wyniku w formacie, ktory moze zostac ponownie wykorzystany jako wejscie. Jezeli nie podano zadnych argumentow, to wypisywana jest informacja o zapamietanych poleceniach. Kodem zwracanym jest prawda, chyba ze nie odnaleziono nazwy lub podano nieprawidlowa opcje. help [-dms] [wzorzec] Wyswietla pomocne informacje o poleceniach wbudowanych. Jezeli podano wzorzec, to help daje szczegolowa pomoc dotyczaca wszystkich polecen pasujacych do wzorca; w przeciwnym razie wypisywana jest pomoc dla wszystkich polecen wbudowanych i struktur sterujacych powloki. -d Wyswietla krotki opis dla kazdego wzorca -m Wyswietla opis dla kazdego wzorca w formacie podobnym do strony man -s Wyswietla jedynie krotkie podsumowanie uzycia kazdego wzorca Kodem zakonczenia jest 0, chyba nie nie dopasowano zadnego polecenia do wzorca. history [n] history -c history -d przesuniecie history -d poczatek-koniec history -anrw [plik] history -p arg [arg ...] history -s arg [arg ...] Bez zadnych opcji, wyswietla liste historii polecen z numerami wierszy. Wiersze ukazane z * zostaly zmienione. Argument n pokazuje jedynie ostatnich n wierszy. Jesli ustawiono zmienna powloki HISTTIMEFORMAT i nie jest ona pusta, to do wyswietlania pieczatek czasowych zwiazanych z kazdym wyswietlanym wpisem historii uzywany jest format lancucha do strftime(3). Pomiedzy formatowana pieczatka czasowa a wierszem historii nie jest wstawiany odstep. Jezeli podano plik, to uzywany jest on jako nazwa pliku historii; jesli nie, to uzywana jest wartosc HISTFILE. Opcje, jezeli je podano, maja nastepujace znaczenie: -c Czysci liste historii usuwajac wszystkie jej pozycje. -d przesuniecie Delete the history entry at position offset. If offset is negative, it is interpreted as relative to one greater than the last history position, so negative indices count back from the end of the history, and an index of -1 refers to the current history -d command. -d poczatek-koniec Delete the range of history entries between positions start and end, inclusive. Positive and negative values for start and end are interpreted as described above. -a Dodaje "nowe" wiersze do pliku historii. Sa to wiersze historii wprowadzone od poczatku biezacej sesji bash, lecz nie dodane jeszcze do pliku historii. -n Wczytuje do biezacej listy wiersze jeszcze nie przeczytane z pliku historii. Sa to wiersze dolaczone do pliku historii od chwili rozpoczecia biezacej sesji pracy bash. -r Czyta zawartosc pliku historii i dodaje ja do biezacej listy historii. -w Zapisuje biezaca liste historii do pliku historii, nadpisujac jego zawartosc. -p Na zadanych argumentach wykonuje podstawianie historii (history substitution). Wyswietla wyniki na standardowym wyjsciu. Nie zachowuje wynikow na liscie. Kazdy z argumentow musi byc cytowany, by wylaczyc normalna interpretacje historii. -s Zachowuje argumenty na liscie historii jako pojedyncza pozycje. Przed dodaniem argumentow z listy usuwane jest ostatnie polecenie. Jesli ustawiona jest zmienna HISTTIMEFORMAT, to do pliku historii zapisywana jest informacja o czasie zwiazanym z kazdym wpisem historii, oznaczona znakiem komentarza historii. Gdy plik historii jest odczytywany, wiersze zaczynajace sie znakiem komentarza historii, po ktorym wystepuje bezposrednio cyfra, sa interpretowane jako czasy kolejnego wpisu. Wartoscia zwracana jest 0, chyba ze napotkano nieprawidlowa opcje lub podczas odczytu czy zapisu pliku historii pojawil sie blad, opcji -d podano niepoprawny argument offset lub zakres, lub nie powiodla sie interpretacja historii podanej jako argument -p. jobs [-lnprs] [ zadanie ... ] jobs -x polecenie [ argumenty ... ] Pierwsza postac podaje aktywne zadania. Opcje maja nastepujace znaczenie: -l Oprocz zwyklej informacji podaje identyfikatory procesow. -n Wyswietla wylacznie informacje o zadaniach, ktore zmienily status od chwili, gdy uzytkownik byl ostatnio powiadamiany o ich statusie. -p Listuje tylko ID procesu lidera grupy procesow zadania. -r Wyswietla jedynie dzialajace zadania. -s Wyswietla jedynie zatrzymane zadania. Jezeli podano zadanie, wyniki ograniczane sa do informacji o tym zadaniu. Kodem zwracanym jest 0, chyba ze napotkano nieprawidlowa opcje lub podano nieprawidlowe zadanie. Jezeli podano opcje -x, to jobs zastepuje wszelkie zadania znalezione w poleceniu lub argumentach odpowiednim ID grupy procesow, wykonuje polecenie przesylajac mu argumenty, i zwraca jego kod zakonczenia. kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ... kill -l|-L [sigspec | exit_status] Wysyla sygnaly okreslony przez sigspec lub signum do procesu okreslonego przez pid lub jobspec. sigspec jest albo nazwa sygnalu, jak np. SIGKILL (z lub bez przedrostka SIG) albo numerem sygnalu; signum jest numerem sygnalu. Jesli nie podano sigspec, to przyjmuje sie SIGTERM. Opcja -l listuje nazwy sygnalow. Jezeli przy podanym -l uzyto jakichs argumentow, to listowane sa sygnaly odpowiadajace tym argumentom, a kodem zwracanym jest 0. Argument exit_status opcji -l jest liczba okreslajaca numer sygnalu lub kod zakonczenia procesu przerwanego przez sygnal. Opcja -L jest rownowazna -l. kill zwraca prawde, jesli przynajmniej jeden z sygnalow zostal pomyslnie przeslany, lub falsz, jesli pojawil sie blad lub napotkano niepoprawna opcje. let arg [arg ...] Each arg is an arithmetic expression to be evaluated (see ARITHMETIC EVALUATION above). If the last arg evaluates to 0, let returns 1; 0 is returned otherwise. local [opcja] [nazwa[=wartosc] ... | - ] For each argument, a local variable named name is created, and assigned value. The option can be any of the options accepted by declare. When local is used within a function, it causes the variable name to have a visible scope restricted to that function and its children. If name is -, the set of shell options is made local to the function in which local is invoked: shell options changed using the set builtin inside the function are restored to their original values when the function returns. The restore is effected as if a series of set commands were executed to restore the values that were in place before the function. With no operands, local writes a list of local variables to the standard output. It is an error to use local when not within a function. The return status is 0 unless local is used outside a function, an invalid name is supplied, or name is a readonly variable. logout Konczy prace powloki zgloszeniowej. mapfile [-d sep] [-n liczba] [-O indeks] [-s liczba] [-t] [-u fd] [-C wywol-zwr] [-c wielkosc] [tablica] readarray [-d sep] [-n liczba] [-O indeks] [-s liczba] [-t] [-u fd] [-C wywol-zwr] [-c wielkosc] [tablica] Odczytuje wiersze ze standardowego wejscia do indeksowanej zmiennej tablicowej tablica lub, jesli podano opcje -u, z deskryptora pliku fd. Domyslna tablica jest zmienna MAPFILE Opcje, jesli je podano, maja nastepujace znaczenie: -d The first character of delim is used to terminate each input line, rather than newline. If delim is the empty string, mapfile will terminate a line when it reads a NUL character. -n Kopiuje najwyzej liczbe wierszy. Gdy liczba wynosi 0, kopiowane sa wszystkie wiersze. -O Rozpoczyna przypisywanie do tablicy od indeksu indeks. Domyslnym jest 0. -s Pomija pierwsze liczba wierszy. -t Usuwa koncowy sep (domyslnie znak nowego wiersza) z kazdego odczytanego wiersza. -u Odczytuje wiersze z deskryptora pliku fd zamiast ze standardowego wejscia. -C Oblicza wywol-zwr po kazdym odczytaniu liczby wielkosc wierszy. Opcja -c okresla wielkosc. -c Okresla liczbe wierszy odczytanych pomiedzy kazdym odwolaniem do wywol-zwr. Jesli podano -C bez -c, to domyslna wielkoscia jest 5000. Gdy wykonywane jest wywol-zwr, jako dodatkowe argumenty przekazywane sa mu indeks nastepnego elementu tablicy do przypisania i wiersza, ktory ma byc przypisy do tego elementu. Wywol-zwr jest wykonywane po odczytaniu wiersza, ale przed przypisaniem elementu tablicy. Jesli nie podano indeksu, mapfile wyczysci tablice przed przypisaniem do niej wartosci. Polecenie mapfile zwraca sukces, chyba ze podano nieprawidlowa opcje lub argument opcji, tablica jest nieprawidlowa, nie da sie do niej przypisac wartosci lub nie jest tablica indeksowana. popd [-n] [+n] [-n] Removes entries from the directory stack. The elements are numbered from 0 starting at the first directory listed by dirs. With no arguments, popd removes the top directory from the stack, and changes to the new top directory. Arguments, if supplied, have the following meanings: -n Nie wykonuje zwyklej zmiany katalogu podczas usuwania katalogow ze stosu, tak ze zmieniany jest tylko stos. +n Usuwa nta pozycje, liczac od lewej, listy pokazywanej przez dirs, zaczynajac od zera, ze stosu. Na przyklad ``popd +0'' usuwa pierwszy katalog, a ``popd +1'' drugi. -n Usuwa nta pozycje, liczac od prawej, listy pokazywanej przez dirs, zaczynajac od zera. Na przyklad ``popd -0'' usuwa ostatni katalog, a ``popd -1'' przedostatni. If the top element of the directory stack is modified, and the -n option was not supplied, popd uses the cd builtin to change to the directory at the top of the stack. If the cd fails, popd returns a non-zero value. Otherwise, popd returns false if an invalid option is encountered, the directory stack is empty, or a non-existent directory stack entry is specified. If the popd command is successful, bash runs dirs to show the final contents of the directory stack, and the return status is 0. printf [-v zmienna] format [argumenty] Zapisuje sformatowane argumenty na standardowe wyjscie przy pomocy zadanego formatu. Opcja -v przypisuje wynik do zmiennej zmienna zamiast wyswietlac je na standardowe wyjsciowe. format jest lancuchem znakowym zawierajacym trzy rodzaje obiektow: zwykle znaki, ktore sa po prostu kopiowane na standardowe wyjscie, sekwencje specjalne, ktore sa konwertowane i kopiowane na standardowe wyjscie, i specyfikacje formatu, z ktorych kazda powoduje wypisanie nastepnego kolejnego argumentu. Oprocz standardowych formatow printf(1), interpretuje on rowniez nastepujace rozszerzenia: %b powoduje, ze printf interpretuje sekwencje ucieczki z ukosnikiem w danym argumencie w ten sam sposob co echo -e. %q powoduje, ze printf wysyla odpowiedni argument w formacie, jaki moze byc ponownie wykorzystany jako wejscie powloki. %Q like %q, but applies any supplied precision to the argument before quoting it. %(format-daty)T powoduje, ze printf wyswietla lancuch daty/czasu jako rezultat uzycia formatu-daty jako lancucha formatu do strftime(3). Powiazany argument jest liczba calkowita odpowiadajaca liczbie sekund od poczatku epoki [Uniksa]. Mozna uzyc dwoch specjalnych wartosci argumentu: -1 reprezentuje biezacy czas, a -2 odpowiada czasowi wywolania powloki. Jesli nie poda sie argumentu, konwersja przebiega tak, jak gdyby podano -1. Jest to wyjatek w zwyczajnym zachowaniu printf. The %b, %q, and %T directives all use the field width and precision arguments from the format specification and write that many bytes from (or use that wide a field for) the expanded argument, which usually contains more characters than the original. Argumenty do specyfikacji formatu niebedacych lancuchami sa traktowane jako stale C, z wyjatkiem poczatkowego znaku plus lub minus, ktory jest dozwolony oraz przypadku gdy pierwszy znak jest pojedynczym lub podwojnym apostrofem, gdy wartoscia jest wartosc ASCII nastepujacego po cudzyslowie znaku. W razie potrzeby format wykorzystywany jest ponownie, az do obsluzenia wszystkich argumentow. Jezeli format wymaga wiekszej ilosci argumentow niz podano, to dodatkowe specyfikacje formatu zachowuja sie tak, jakby dostarczono im odpowiednio wartosc zerowa lub lancuch pusty. Zwracana jest wartosc zero w przypadku powodzenia, niezerowa przy porazce. pushd [-n] [+n] [-n] pushd [-n] [katalog] Adds a directory to the top of the directory stack, or rotates the stack, making the new top of the stack the current working directory. With no arguments, pushd exchanges the top two elements of the directory stack. Arguments, if supplied, have the following meanings: -n Nie wykonuje zwyklej zmiany katalogu podczas obracania lub dodawania katalogow do stosu, tak ze zmieniany jest tylko stos. +n Obraca stos, tak ze nty katalog (liczac od lewej listy pokazywanej przez dirs, poczynajac od zera) staje sie wierzcholkiem. -n Obraca stos, tak ze nty katalog (liczac od prawej listy pokazywanej przez dirs, poczynajac od zera) staje sie wierzcholkiem. katalog Adds dir to the directory stack at the top After the stack has been modified, if the -n option was not supplied, pushd uses the cd builtin to change to the directory at the top of the stack. If the cd fails, pushd returns a non-zero value. Otherwise, if no arguments are supplied, pushd returns 0 unless the directory stack is empty. When rotating the directory stack, pushd returns 0 unless the directory stack is empty or a non-existent directory stack element is specified. If the pushd command is successful, bash runs dirs to show the final contents of the directory stack. pwd [-LP] Wypisuje bezwzgledna nazwe pliku biezacego katalogu roboczego. Pokazana nazwa nie zawiera zadnych dowiazan symbolicznych jesli podano opcje -P albo wlaczona jest opcja -o physical wbudowanego polecenia set. Jesli uzyto opcji -L, wypisana nazwa sciezkowa moze zawierac dowiazania symboliczne. Zwracany kod wynosi 0, chyba ze podczas odczytu nazwy biezacego katalogu pojawi sie blad lub podano nieprawidlowa opcje. read [-ers] [-a anazwa] [-d znak-odst] [-i tekst] [-n nznaki] [-N nznaki] [-p zacheta] [-t czas-oczek] [-u fd] [nazwa ...] One line is read from the standard input, or from the file descriptor fd supplied as an argument to the -u option, split into words as described above under Word Splitting, and the first word is assigned to the first name, the second word to the second name, and so on. If there are more words than names, the remaining words and their intervening delimiters are assigned to the last name. If there are fewer words read from the input stream than names, the remaining names are assigned empty values. The characters in IFS are used to split the line into words using the same rules the shell uses for expansion (described above under Word Splitting). The backslash character (\) may be used to remove any special meaning for the next character read and for line continuation. Options, if supplied, have the following meanings: -a anazwa Slowa sa przypisywane do kolejnych indeksow zmiennej tablicowej anazwa, poczynajac od 0. anazwa jest kasowana przed przypisaniem nowych wartosci. Inne argumenty nazwa sa ignorowane. -d sep The first character of delim is used to terminate the input line, rather than newline. If delim is the empty string, read will terminate a line when it reads a NUL character. -e If the standard input is coming from a terminal, readline (see READLINE above) is used to obtain the line. Readline uses the current (or default, if line editing was not previously active) editing settings, but uses readline's default filename completion. -i tekst Gdy do odczytu wiersza jest uzywane readline, tekst jest umieszczany w buforze edycyjnym przed rozpoczeciem edycji. -n nznaki read powraca po przeczytaniu nznaki znakow, zamiast czekac na caly wiersz wejscia, ale przestrzega znaku odstepu jesli odczytano mniej niz nznaki znakow przed odstepem. -N nznaki Polecenie read powraca pod przeczytaniu dokladnie nznakow, zamiast czekac na caly wiersz wejscia, chyba ze wystapil koniec wiersza lub czas oczekiwania read minal. Znaki odstepu napotkane w wejsciu nie sa traktowane w sposob specjalny i nie powoduja powrotu read, dopoki nie zostanie przeczytanych nznakow. Wynik nie jest dzielony na znaki w IFS; zalozenie jest takie, ze zmienna jest przypisywana dokladnie odczytanym znakom (z wylaczeniem ukosnika; zob. opcja -r ponizej). -p zacheta Wyswietla zachete (prompt) na standardowym wyjsciu bledow, bez konczacego znaku nowej linii, przed proba odczytu wejscia. Zacheta wyswietlana jest tylko jesli wejscie pochodzi z terminala. -r Odwrotny ukosnik nie dziala jako znak specjalny. Traktowany jest jako czesc wiersza. W szczegolnosci, para odwrotny ukosnik-znak nowej linii nie moze byc nastepnie wykorzystana jako kontynuacja wiersza. -s Tryb cichy. Jezeli wejscie pochodzi z terminala, to znaki nie sa powtarzane (bez echa). -t timeout Powoduje, ze read zwraca niepowodzenie, jesli w ciagu czas-oczek sekund nie zostanie przeczytany pelny wiersz wejscia (lub okreslona liczba znakow). Czas-oczek moze byc liczba dziesietna z czescia ulamkowa po znaku kropce. Opcja dziala jedynie gdy read odczytuje wejscie z terminala, potoku lub innego pliku specjalnego, nie dziala natomiast podczas czytania ze zwyklych plikow. Jesli read przeterminuje sie, read zachowuje odczytane czesciowe wejscie do podanej zmiennej nazwa. Jesli czas-oczek ustawiono na 0, to read zwraca kod zakonczenia natychmiast, bez proby odczytu jakichkolwiek danych. Kodem zakonczenia jest 0, jesli wejscie jest dostepne na okreslonym deskryptorze pliku lub odczyt zwraca koniec pliku (EOF); albo zwraca kod niezerowy w przeciwnym wypadku. Kod zakonczenia jest wiekszy od 128, jesli przekroczono czas oczekiwania. -u fd Czyta wejscie z deskryptora pliku fd. If no names are supplied, the line read, without the ending delimiter but otherwise unmodified, is assigned to the variable REPLY. The exit status is zero, unless end-of-file is encountered, read times out (in which case the status is greater than 128), a variable assignment error (such as assigning to a readonly variable) occurs, or an invalid file descriptor is supplied as the argument to -u. readonly [-aAf] [-p] [nazwa[=slowo] ...] Podane nazwy oznaczane sa jako readonly; wartosci tych nazw nie moga byc zmieniane nastepujacymi pozniej przypisaniami. Jesli podano opcje -f, oznaczane sa funkcje o nazwach odpowiadajacych nazwom. Opcja -a ogranicza zmienne do tablic indeksowanych, a -A do tablic asocjacyjnych. Jesli podano obie opcje, pierwszenstwo ma opcja -A. Jesli nie podano argumentow nazw lub jesli podano opcje -p, wypisywane jest zestawienie wszystkich nazw o atrybucie readonly. Inne opcje moga zostac uzyte do ograniczenia wyniku do podzbioru nazw readonly. Opcja -p powoduje, ze wyniki beda wyswietlane w formacie, ktory moze byc ponownie wykorzystany jako wejscie. Jesli po nazwie zmiennej wystepuje =slowo, to wartosc zmiennej jest ustawiana na slowo. Zwracany jest kod rowny 0, chyba ze napotkano nieprawidlowa opcje, jedna z nazw nie jest poprawna nazwa zmiennej powloki lub podano -f z nazwa, ktora nie jest funkcja. return [n] Powoduje, ze funkcja przerywa wykonywanie i zwraca wartosc okreslona przez n do wywolujacego. Jesli pominieto n, kodem zakonczenia jest kod ostatniego polecenia wykonanego w ciele funkcji. Jesli return jest wykonywane przez obsluge pulapki, ostatnie polecenie sluzace do okreslenia statusu jest ostatnim poleceniem wykonywanym przed obsluga pulapki. Jesli return jest wykonywane podczas pulapki DEBUG, ostatnie polecenie uzyte do okreslenia statusu jest ostatnim poleceniem wykonanym przez obsluge pulapki przed tym, zanim wywolano return. Jezeli return zostanie uzyte poza funkcja, ale podczas wykonywania skryptu przez polecenie . (source), powoduje zatrzymanie wykonywania tego skryptu przez powloke i zwrocenie albo n albo kodu zakonczenia ostatniego wykonanego w skrypcie polecenia. Jesli poda sie n, zwracana wartoscia jest 8 bitow najmniej znaczacych. Kod zakonczenia jest niezerowy, jesli return poda sie argument nienumeryczny lub jezeli jest ono uzyte poza funkcja i nie podczas wykonywania skryptu przez . lub source. Wszystkie polecenia zwiazane z pulapka (trap) RETURN sa wykonywane przez wznowieniem wykonywania po powrocie do funkcji lub skryptu. set [--abefhkmnptuvxBCEHPT] [-o opcja] [--] [-] [arg ...] set [+abefhkmnptuvxBCEHPT] [+o opcja] [--] [-] [arg ...] Without options, display the name and value of each shell variable in a format that can be reused as input for setting or resetting the currently-set variables. Read-only variables cannot be reset. In posix mode, only shell variables are listed. The output is sorted according to the current locale. When options are specified, they set or unset shell attributes. Any arguments remaining after option processing are treated as values for the positional parameters and are assigned, in order, to $1, $2, ... $n. Options, if specified, have the following meanings: -a Kazdej utworzonej lub zmodyfikowanej zmiennej lub funkcji nadawany jest atrybut eksportu oraz oznaczane sa one jako do wyeksportowania ich do srodowiska kolejnych polecen. -b Natychmiast podaje status zakonczonych zadan drugoplanowych, zamiast czynic to przed nastepna podstawowa zacheta. Dziala tylko jesli wlaczona jest kontrola zadan. -e Exit immediately if a pipeline (which may consist of a single simple command), a list, or a compound command (see SHELL GRAMMAR above), exits with a non-zero status. The shell does not exit if the command that fails is part of the command list immediately following a while or until keyword, part of the test following the if or elif reserved words, part of any command executed in a && or || list except the command following the final && or ||, any command in a pipeline but the last, or if the command's return value is being inverted with !. If a compound command other than a subshell returns a non-zero status because a command failed while -e was being ignored, the shell does not exit. A trap on ERR, if set, is executed before the shell exits. This option applies to the shell environment and each subshell environment separately (see COMMAND EXECUTION ENVIRONMENT above), and may cause subshells to exit before executing all the commands in the subshell. Jesli polecenie zlozone lub funkcja powloki jest wykonywana w kontekscie, w ktorym -e jest ignorowane, to zadne z polecen wykonywanych w poleceniu zlozonym lub ciele funkcji nie zostanie dotkniete ustawieniem -e, nawet jesli -e jest ustawione, a polecenie zwroci kod bledu. Jesli polecenie zlozone lub funkcja powloki ustawi -e w trakcie wykonywania w kontekscie, w ktorym -e jest ignorowane, to ustawienie nie odniesie zadnego skutku dopoki polecenie zlozone lub polecenie zawierajace wywolanie funkcji nie zakonczy sie. -f Wylacza rozwijanie nazw plikow. -h Zapamietuje polozenie polecen przy wyszukiwania ich do wykonania. Domyslnie wlaczone. -k Wszystkie argumenty wystepujace w postaci instrukcji przypisania umieszczane sa w srodowisku polecenia, nie zas tylko te, ktore poprzedzaja nazwe polecenia. -m Tryb monitorowania. Wlaczona jest kontrola zadan. Opcja ta jest domyslnie wlaczona dla powlok interaktywnych na systemach ja obslugujacych (zobacz STEROWANIE ZADANIAMI). above). Wszystkie procesy dzialaja w odrebnej grupie procesow. Gdy zadanie dzialajace w tle zakonczy sie, powloka wypisuje wiersz zawierajacy jego kod zakonczenia. -n Odczytuje polecenia, ale nie ich nie wykonuje. Moze byc wykorzystane do sprawdzenia bledow skladni w skrypcie powloki. Ignorowane przez powloki interaktywne. -o nazwa-opcji Nazwa-opcji moze byc jedna z ponizszych: allexport To samo, co -a. braceexpand To samo, co -B. emacs Uzyj interfejsu edycji wiersza polecen w stylu emacsa. Wlaczone domyslnie, jesli powloka jest interaktywna, chyba ze zostala uruchomiona z opcja --noediting. Wplywa to rowniez na interfejs edycyjny uzywany przez read -e. errexit To samo, co -e. errtrace To samo, co -E. functrace To samo, co -T. hashall To samo, co -h. histexpand To samo, co -H. history Wlacza historie polecen, jak opisano powyzej above w sekcji HISTORII. Opcja ta jest domyslnie wlaczona w powlokach interaktywnych. ignoreeof Efekt jest taki, jakby zostalo wykonane polecenie powloki ``IGNOREEOF=10'' (zobacz Zmienne powloki). above). keyword To samo, co -k. monitor To samo, co -m. noclobber To samo, co -C. noexec To samo, co -n. noglob To samo, co -f. nolog Obecnie ignorowane. notify To samo, co -b. nounset To samo, co -u. onecmd To samo, co -t. physical To samo, co -P. pipefail Gdy ustawione, zwracana wartosc potoku jest wartoscia ostatniego (po prawej) polecenia, ktore zakonczylo sie z kodem niezerowym lub zero, gdy wszystkie polecenia w potoku zakonczyly sie sukcesem. Opcja jest domyslnie wylaczona. posix Change the behavior of bash where the default operation differs from the POSIX standard to match the standard (posix mode). See SEE ALSO below for a reference to a document that details how posix mode affects bash's behavior. privileged To samo, co -p. verbose To samo, co -v. vi Uzywa interfejsu edycji wiersza polecen w stylu vi. Wplywa to rowniez na interfejs edycyjny uzywany przez read -e. xtrace To samo, co -x. Jezeli podano -o bez nazwy-opcji, to wypisywane sa wartosci biezacych opcji. Jezeli podano +o bez nazwy-opcji, na standardowym wyjsciu wyswietlana jest seria polecen set potrzebnych do odtworzenia aktualnych ustawien opcji. -p Wlacza tryb uprzywilejowany (privileged). W tym trybie pliki $ENV i $BASH_ENV nie sa przetwarzane, funkcje powloki nie sa dziedziczone ze srodowiska, a zmienne SHELLOPTS, BASHOPTS, CDPATH i GLOBIGNORE, jesli wystepuja w srodowisku, sa ignorowane. Jesli powloka zostala uruchomiona z efektywnym id uzytkownika (grupy) roznym od id rzeczywistego a nie podano opcji -p, to podejmowane sa opisane wyzej akcje a efektywny id uzytkownika jest ustawiany na identyfikator rzeczywisty. Jezeli przy uruchamianiu podano opcje -p, to efektywny identyfikator uzytkownika nie jest resetowany. Wylaczenie tej opcji powoduje, ze identyfikatory efektywne uzytkownika i grupy zostana ustawione na identyfikatory rzeczywiste. -r Enable restricted shell mode. This option cannot be unset once it has been set. -t Konczy prace po przeczytaniu i wykonaniu jednego polecenia. -u Treat unset variables and parameters other than the special parameters "@" and "*", or array variables subscripted with "@" or "*", as an error when performing parameter expansion. If expansion is attempted on an unset variable or parameter, the shell prints an error message, and, if not interactive, exits with a non-zero status. -v Wypisuje wiersze wejsciowe powloki przy ich odczytywaniu. -x Po interpretacji kazdego polecenia prostego, polecen for, case i select lub polecenia arytmetycznego for wyswietla zinterpretowana wartosc PS4, po ktorej nastepuje polecenie i jego zinterpretowane argumenty lub powiazana lista slow. -B The shell performs brace expansion (see Brace Expansion above). This is on by default. -C Jesli wlaczone, bash nie nadpisuje istniejacego pliku przy uzyciu operatorow przekierowania >, >& i <>. Mozna to ominac tworzac pliki wyjsciowe przy uzyciu operatora przekierowania >| zamiast >. -E Gdy ustawiona, pulapka ERR jest dziedziczona przez funkcje powloki, uzupelnienia polecen i polecenia wykonywane w srodowisku podpowloki. Pulapka ERR normalnie nie jest dziedziczona w takich przypadkach. -H Wlacza zastepowanie historii w stylu !. Opcja ta jest domyslnie wlaczona dla powloki interaktywnej. -P Jezeli jest ustawiona, to powloka nie rozwiazuje dowiazan symbolicznych podczas wykonywania polecen zmieniajacych biezacy katalog roboczy, jak cd. Uzywa zamiast tego fizycznej struktury katalogow. Domyslnie, bash podaza za logicznym lancuchem katalogow podczas wykonywania polecen zmieniajacych biezacy katalog roboczy. -T Gdy ustawiona, pulapki DEBUG i RETURN sa dziedziczone przez funkcje powloki, uzupelnienia polecen i polecenia wykonywane w srodowisku podpowloki. Pulapki DEBUG i RETURN nie sa normalnie dziedziczone w takich przypadkach. -- Jezeli po tej opcji nie wystepuja zadne argumenty, to parametry pozycyjne sa kasowane. W przeciwnym razie, parametry pozycyjne ustawiane sa na argumenty, nawet jesli niektore z nich zaczynaja sie od znaku -. - Sygnalizuje koniec opcji, powodujac przypisanie wszystkich pozostalych argumentow do parametrow pozycyjnych. Opcje -x i -v sa wylaczane. Jezeli nie ma argumentow, to parametry pozycyjne pozostaja bez zmian. Opcje sa domyslnie wylaczone, chyba ze wskazano inaczej. Uzycie + zamiast - spowoduje, ze opcje te zostana wylaczone. Opcje moga takze zostac okreslone jako argumenty wywolania powloki. Biezacy zestaw opcji mozna znalezc w $-. Zwracanym kodem jest zawsze prawda, chyba ze napotkano nieprawidlowa opcje. shift [n] Parametrom pozycyjnym od n+1 ... zmienia nazwy na $1 ..... Parametry reprezentowane przez liczby $# w dol do $#-n+1 sa usuwane. n musi byc liczba nieujemna mniejsza lub rowna $#. Jezeli n wynosi 0, parametry nie sa zmieniane. Jezeli nie podano n, zaklada sie, ze wynosi 1. Jezeli n jest wieksze od $#, parametry pozycyjne nie sa zmieniane. Kod zakonczenia jest wiekszy od zera jezeli n jest wieksze od $# lub mniejsze od zera; w przeciwnym wypadku 0. shopt [-pqsu] [-o] [nazwa_opcji ...] Toggle the values of settings controlling optional shell behavior. The settings can be either those listed below, or, if the -o option is used, those available with the -o option to the set builtin command. With no options, or with the -p option, a list of all settable options is displayed, with an indication of whether or not each is set; if optnames are supplied, the output is restricted to those options. The -p option causes output to be displayed in a form that may be reused as input. Other options have the following meanings: -s Wlacz (ustaw) kazda nazwe_opcji. -u Wylacz (usun) kazda nazwe_opcji. -q Zaniechaj zwyklego wyswietlania (tryb cichy); zwracany kod wskazuje na to czy nazwa_opcji jest ustawiona czy nie ustawiona. Jezeli z -q podano wiele argumentow nazw_opcji, to zwracanym kodem jest zero, gdy wszystkie nazwy_opcji sa wlaczone; w przeciwnym razie kod jest niezerowy. -o Ogranicza wartosci nazwy_opcji do wartosci zdefiniowanych dla opcji -o wbudowanego polecenia set. Jezeli uzyto albo -s albo -u bez argumentow nazw_opcji, shopt pokazuje jedynie te opcji, ktore, odpowiednio, sa ustawione badz nieustawione. Jezeli nie wskazano inaczej, opcje shopt sa domyslnie wylaczone (nie ustawione). Przy listowaniu opcji zwracany jest kod zerowy jesli wszystkie nazwy_opcji sa wlaczone, niezerowy w przeciwnym wypadku. Przy ustawianiu lub kasowaniu opcji zwracany jest zerowy kod, chyba ze nazwa_opcji nie jest poprawna opcja powloki. Lista opcji shopt obejmuje: assoc_expand_once If set, the shell suppresses multiple evaluation of associative array subscripts during arithmetic expression evaluation, while executing builtins that can perform variable assignments, and while executing builtins that perform array dereferencing. autocd Jesli jest ustawiona, nazwa polecenia bedaca nazwa katalogu jest wykonywana identycznie, jak gdyby byla argumentem polecenia cd. Opcja ta jest uzywana tylko w powlokach interaktywnych. cdable_vars Jesli jest ustawiona, to nie bedacy katalogiem argument wbudowanego polecenia cd uwazany jest za nazwe zmiennej; wartoscia tej zmiennej jest katalog, na ktory ma nastapic zmiana. cdspell Jesli jest ustawiona, to pomniejsze bledy w pisowni skladowej katalogu w poleceniu cd beda poprawiane. Sprawdzenie takich bledow obejmuje znaki zamienione miejscami, znaki pominiete i pojedyncze zbedne znaki. Jezeli znaleziono poprawke, wypisywana jest poprawna nazwa pliku a polecenie kontynuuje dzialanie. Opcja ta jest wykorzystywana tylko przez powloki interaktywne. checkhash Jesli jest ustawiona, bash sprawdza przed proba wykonania polecenia znalezionego w tablicy mieszajacej, czy polecenie to istnieje. Jezeli juz nie istnieje, to wykonywane jest zwykle przeszukiwanie sciezki. checkjobs If set, bash lists the status of any stopped and running jobs before exiting an interactive shell. If any jobs are running, this causes the exit to be deferred until a second exit is attempted without an intervening command (see JOB CONTROL above). The shell always postpones exiting if any jobs are stopped. checkwinsize If set, bash checks the window size after each external (non-builtin) command and, if necessary, updates the values of LINES and COLUMNS. This option is enabled by default. cmdhist If set, bash attempts to save all lines of a multiple-line command in the same history entry. This allows easy re-editing of multi-line commands. This option is enabled by default, but only has an effect if command history is enabled, as described above under HISTORY. compat31 compat32 compat40 compat41 compat42 compat43 compat44 compat50 These control aspects of the shell's compatibility mode (see SHELL COMPATIBILITY MODE below). complete_fullquote Gdy ustawiona, bash cytuje wszystkie metaznaki powloki w nazwach plikow i katalogow w trakcie wykonywania uzupelniania. Gdy nieustawiona, bash usuwa metaznaki takie jak znak dolara z zestawu cytowanych znakow w uzupelnianych nazwach plikow, gdy te metaznaki pojawiaja sie w odniesieniach do zmiennych powloki, w slowach do uzupelnienia. Oznacza to, ze znaki dolara w nazwach zmiennych uzupelnianych do katalogow nie beda cytowane, jednak znaki dolara pojawiajace sie w nazwach plikow w ogole nie beda cytowane. Jest to aktywne tylko wowczas, gdy bash uzywa odwrotnego ukosnika do cytowania uzupelnianych nazw plikow. Zmienna ta jest domyslnie ustawiana, co jest domyslnym zachowaniem basha w wersjach do 4.2. direxpand Gdy ustawiona, bash zastepuje nazwy katalogow wynikami rozwijania slow przy przeprowadzaniu uzupelnienia nazw plikow. W ten sposob zmieniana jest zawartosc bufora edycji readline. Jesli nie jest ustawiona, bash stara sie zachowac tresc wpisana przez uzytkownika. dirspell Jezeli jest ustawiona, bash stara sie poprawic pomylki w nazwach katalogow podczas uzupelniania slow, jesli nazwa katalogu wprowadzonego pierwotnie, nie istnieje. dotglob If set, bash includes filenames beginning with a `.' in the results of pathname expansion. The filenames "." and ".." must always be matched explicitly, even if dotglob is set. execfail Jezeli jest ustawione, to powloka nie-interaktywna nie zakonczy pracy nie mogac wykonac pliku okreslonego jako argument wbudowanego polecenia exec. Powloka interaktywna nie konczy pracy, jesli exec zawiedzie. expand_aliases If set, aliases are expanded as described above under ALIASES. This option is enabled by default for interactive shells. extdebug If set at shell invocation, or in a shell startup file, arrange to execute the debugger profile before the shell starts, identical to the --debugger option. If set after invocation, behavior intended for use by debuggers is enabled: 1. Opcja -F wbudowanego polecenia declare wyswietla nazwe pliku zrodlowego i numer wiersza odpowiadajacy kazdej nazwie funkcji podanej jako argument. 2. Jesli polecenie uruchomione przez pulapke DEBUG zwraca wartosc niezerowa, kolejne polecenie jest pomijane i nie jest wykonywane. 3. Jesli polecenie uruchamiane przez pulapke DEBUG zwroci wartosc 2, a powloka wykonywana w podprogramie (funkcja powloki lub skrypt powloki wykonywany wbudowanymi . lub source), to symulowane jest wywolanie do return. 4. BASH_ARGC and BASH_ARGV are updated as described in their descriptions above). 5. Wlaczone jest sledzenie funkcji: podstawianie polecen, funkcje powloki i podpowloki przywolane za pomoca ( polecenie ) dziedzicza pulapki DEBUG i RETURN. 6. Wlaczone jest sledzenie bledow: podstawianie polecen, funkcje powloki i podpowloki przywolane za pomoca ( polecenie ) dziedzicza pulapke ERR. extglob If set, the extended pattern matching features described above under Pathname Expansion are enabled. extquote Jezeli jest wlaczona, cytowania $'lancuch' and $"lancuch" sa przeprowadzane wewnatrz interpretacji ${parametr} ujetych w podwojne cudzyslowy. Opcja jest domyslnie wlaczona. failglob Jesli jest wlaczona, wzorce do ktorych nie dopasowano nazw plikow podczas rozwiniecia nazw plikow, daja w wyniku blad rozwiniecia (interpretacji). force_fignore If set, the suffixes specified by the FIGNORE shell variable cause words to be ignored when performing word completion even if the ignored words are the only possible completions. See SHELL VARIABLES above for a description of FIGNORE. This option is enabled by default. globasciiranges If set, range expressions used in pattern matching bracket expressions (see Pattern Matching above) behave as if in the traditional C locale when performing comparisons. That is, the current locale's collating sequence is not taken into account, so b will not collate between A and B, and upper-case and lower-case ASCII characters will collate together. globskipdots If set, pathname expansion will never match the filenames "." and "..", even if the pattern begins with a ".". This option is enabled by default. globstar Gdy jest ustawiona, wzorzec ** uzywany w kontekscie rozwijania nazw plikow, dopasowuje wszystkie pliki i zero lub wiecej katalogow i podkatalogow. Jesli po wzorcu wystepuje /, to dopasowywane sa jedynie katalogi i podkatalogi. gnu_errfmt Jezeli jest ustawiona, komunikaty bledow powloki sa wypisywane w standardowym formacie bledow GNU. histappend Jezeli jest ustawiona, to do pliku o nazwie wskazanej zmienna HISTFILE podczas konczenia pracy przez powloke dodawana jest lista historii, zamiast nadpisywania tego pliku lista. histreedit Jezeli jest ustawione, a uzywane jest readline, to uzytkownik ma mozliwosc ponownej edycji nieudanego podstawienia historii historii. histverify Jezeli jest ustawione, a uzywane jest readline, to wyniki podstawiania historii nie sa natychmiast przesylane do analizatora powloki. Zamiast tego, wiersz wynikowy ladowany jest do bufora edycyjnego readline, pozwalajac na dalsze zmiany. hostcomplete If set, and readline is being used, bash will attempt to perform hostname completion when a word containing a @ is being completed (see Completing under READLINE above). This is enabled by default. huponexit Jezeli jest ustawione, to bash wysle SIGHUP do wszystkich zadan podczas konczenia pracy interaktywnej powloki zgloszeniowej. inherit_errexit Jesli jest ustawione, uzupelnianie polecen dziedziczy wartosc opcji errexit, zamiast kasowac ja w srodowisku podpowloki. Opcja ta jest wlaczana jesli wlaczony jest tryb posix. interactive_comments If set, allow a word beginning with # to cause that word and all remaining characters on that line to be ignored in an interactive shell (see COMMENTS above). This option is enabled by default. lastpipe Jesli jest ustawiona, a kontrola zadan nie jest aktywna, powloka uruchamia ostatnie polecenie potoku, ktory nie jest wykonywany w tle, w biezacym srodowisku powloki. lithist Jesli jest ustawione, a wlaczona jest opcja cmdhist, to polecenia wielowierszowe zachowywane sa w historii w miare mozliwosci z osadzonymi znakami nowej linii zamiast przy uzyciu srednikow jako separatorow. localvar_inherit If set, local variables inherit the value and attributes of a variable of the same name that exists at a previous scope before any new value is assigned. The nameref attribute is not inherited. localvar_unset If set, calling unset on local variables in previous function scopes marks them so subsequent lookups find them unset until that function returns. This is identical to the behavior of unsetting local variables at the current function scope. login_shell The shell sets this option if it is started as a login shell (see INVOCATION above). The value may not be changed. mailwarn Jezeli jest ustawione, zas do pliku, w ktorym sprawdza poczte bash siegano od czasu ostatniego sprawdzania, to zostanie wyswietlony komunikat ,,The mail in plikpoczty has been read" (Poczta w plikpoczty zostala przeczytana). no_empty_cmd_completion Jesli jest ustawione, i stosowane jest readline, to bash nie bedzie usilowal szukac w PATH mozliwych uzupelnien, gdy proba uzupelniania wystapi w pustym wierszu. nocaseglob If set, bash matches filenames in a case-insensitive fashion when performing pathname expansion (see Pathname Expansion above). nocasematch Gdy jest ustawiona, bash dopasowuje wzorce ignorujac wielkosc liter, podczas wykonywania dopasowania, w czasie wykonywania polecen warunkowych case lub [[, przy wykonywaniu interpretacji zastepowania slow wzorcow lub podczas filtrowania mozliwych dopelnien jako czesci programowalnych dopelnien. noexpand_translation If set, bash encloses the translated results of $"..." quoting in single quotes instead of double quotes. If the string is not translated, this has no effect. nullglob If set, bash allows patterns which match no files (see Pathname Expansion above) to expand to a null string, rather than themselves. patsub_replacement If set, bash expands occurrences of & in the replacement string of pattern substitution to the text matched by the pattern, as described under Parameter Expansion above. This option is enabled by default. progcomp If set, the programmable completion facilities (see Programmable Completion above) are enabled. This option is enabled by default. progcomp_alias If set, and programmable completion is enabled, bash treats a command name that doesn't have any completions as a possible alias and attempts alias expansion. If it has an alias, bash attempts programmable completion using the command word resulting from the expanded alias. promptvars If set, prompt strings undergo parameter expansion, command substitution, arithmetic expansion, and quote removal after being expanded as described in PROMPTING above. This option is enabled by default. restricted_shell The shell sets this option if it is started in restricted mode (see RESTRICTED SHELL below). The value may not be changed. This is not reset when the startup files are executed, allowing the startup files to discover whether or not a shell is restricted. shift_verbose Jezeli jest ustawiona, to wbudowane shift wypisuje komunikat o bledzie gdy liczba przesuniec (przez shift) przekracza liczbe parametrow pozycyjnych. sourcepath If set, the . (source) builtin uses the value of PATH to find the directory containing the file supplied as an argument. This option is enabled by default. varredir_close If set, the shell automatically closes file descriptors assigned using the {varname} redirection syntax (see REDIRECTION above) instead of leaving them open when the command completes. xpg_echo Jezeli jest ustawiona, to dla wbudowanego polecenia echo wlaczane jest domyslne interpretowanie sekwencji specjalnych z odwrotnym ukosnikiem. suspend [-f] Suspend the execution of this shell until it receives a SIGCONT signal. A login shell, or a shell without job control enabled, cannot be suspended; the -f option can be used to override this and force the suspension. The return status is 0 unless the shell is a login shell or job control is not enabled and -f is not supplied. test wyraz [ wyraz ] Return a status of 0 (true) or 1 (false) depending on the evaluation of the conditional expression expr. Each operator and operand must be a separate argument. Expressions are composed of the primaries described above under CONDITIONAL EXPRESSIONS. test does not accept any options, nor does it accept and ignore an argument of -- as signifying the end of options. Wyrazenia moga byc laczone przy uzyciu ponizszych operatorow, podanych w kolejnosci malejacego priorytetu. Ich interpretacja zalezy od liczby argumentow; patrz nizej. Priorytet operatorow jest uzywany gdy wystepuje piec argumentow lub wiecej. ! wyraz Prawda jesli wyraz jest falszem. ( wyraz ) Zwraca wartosc wyraz. Moze byc stosowane do obejscia zwyklej kolejnosci operatorow. wyraz1 -a wyraz2 Prawda jesli oba: wyraz1 i wyraz2 sa prawdziwe. wyraz1 -o wyraz2 Prawda jesli wyraz1 lub wyraz2 jest prawdziwe. test i [ interpretuja wyrazenia warunkowe poslugujac sie zestawem regul opartych o liczbe argumentow. 0 argumentow Wyrazenie jest falszywe. 1 argument Wyrazenie jest prawdziwe wtedy i tylko wtedy gdy argument nie jest pusty (null). 2 argumenty If the first argument is !, the expression is true if and only if the second argument is null. If the first argument is one of the unary conditional operators listed above under CONDITIONAL EXPRESSIONS, the expression is true if the unary test is true. If the first argument is not a valid unary conditional operator, the expression is false. 3 argumenty The following conditions are applied in the order listed. If the second argument is one of the binary conditional operators listed above under CONDITIONAL EXPRESSIONS, the result of the expression is the result of the binary test using the first and third arguments as operands. The -a and -o operators are considered binary operators when there are three arguments. If the first argument is !, the value is the negation of the two-argument test using the second and third arguments. If the first argument is exactly ( and the third argument is exactly ), the result is the one-argument test of the second argument. Otherwise, the expression is false. 4 argumenty The following conditions are applied in the order listed. If the first argument is !, the result is the negation of the three-argument expression composed of the remaining arguments. the two-argument test using the second and third arguments. If the first argument is exactly ( and the fourth argument is exactly ), the result is the two-argument test of the second and third arguments. Otherwise, the expression is parsed and evaluated according to precedence using the rules listed above. 5 lub wiecej argumentow Wyrazenie jest poddawanie analizie skladni i interpretowane zgodnie z priorytetami przy zastosowaniu regul podanych powyzej. Gdy operatory < i > sa uzywane z test lub [, sortuja zgodnie z porzadkiem leksykograficznym uzywajac kolejnosci ASCII. times Wypisuje sumaryczne czasy uzytkownika i systemu dla powloki i procesow z niej uruchomionych. Kodem zwracanym jest 0. trap [-lp] [argument] [sigspec ...] Polecenie argument ma zostac odczytane i wykonane, gdy powloka otrzyma sygnal(y) sigspec. Jesli nie wystepuje argument (i wystepuje pojedynczy sigspec) lub jest to -, to wszystkie podane sygnaly resetowane sa do swych wartosci pierwotnych (wartosci, jakie mialy przy wejsciu do powloki). Jezeli argument jest lancuchem pustym, to sygnal okreslony przez kazde sigspec jest ignorowany przez powloke i polecenia, jakie ona wywoluje. Jezeli nie wystapil argument a podano -p, wyswietlane sa polecenia zwiazane z przechwyceniem kazdego z sygnalow sigspec. Jezeli nie podano zadnych argumentow lub jesli podano tylko -p, to trap wypisuje liste polecen zwiazanych z kazdym z numerow sygnalow. Kazde -l powoduje wypisanie przez powloke listy nazw sygnalow i odpowiadajacych im nazw. Kazdy sigspec jest albo nazwa sygnalu zdefiniowana w albo numerem sygnalu. Wielkosc liter nazw sygnalow nie ma znaczenia, a przedrostek SIG jest opcjonalny. If a sigspec is EXIT (0) the command arg is executed on exit from the shell. If a sigspec is DEBUG, the command arg is executed before every simple command, for command, case command, select command, every arithmetic for command, and before the first command executes in a shell function (see SHELL GRAMMAR above). Refer to the description of the extdebug option to the shopt builtin for details of its effect on the DEBUG trap. If a sigspec is RETURN, the command arg is executed each time a shell function or a script executed with the . or source builtins finishes executing. Jesli sigspec jest ERR, wowczas polecenie argument wykonywane gdy potok (mogacy skladac sie z jednego polecenia prostego), lista, lub polecenie zlozone zwroci niezerowy kod zakonczenia. Pulapka zastawiona na ERR nie jest wykonywana gdy polecenie, ktore zakonczylo sie niepowodzeniem jest wystepuje bezposrednio po slowach kluczowych while lub until, jest czescia testu instrukcji if, czescia polecen wykonywanych w listach && lub || z wyjatkiem polecenia za ostatnim && lub ||, dowolnym poleceniem w potoku z wyjatkiem ostatniego lub jesli wartosc zwracana przez to polecenie jest wstawiana za pomoca !. Identyczne warunki sa przestrzegane przez opcje errexit. Sygnaly ignorowane przy wejsciu do powloki nie moga byc przechwycone ani zresetowane. W procesie potomnym, podczas jego tworzenia, sygnaly przechwycone resetowane sa do swych wartosci pierwotnych. Zwracanym kodem jest falsz jesli ktorykolwiek z sigspec jest nieprawidlowy; w przeciwnym razie trap zwraca true. type [-aftpP] nazwa [nazwa ...] Bez opcji wskazuje, jak powinna byc interpretowana kazda z nazw, jesli zostanie uzyta jako nazwa polecenia. Jezeli uzyto opcji -t, to type wypisuje lancuch bedacy jednym z alias, keyword, function, builtin lub file, jesli nazwa jest odpowiednio aliasem, zastrzezonym slowem powloki, funkcja, poleceniem wbudowanym lub plikiem dyskowym. Jesli nie znaleziono nazwy, to nie jest wypisywane nic i jako kod zakonczenia zwracany jest falsz. Jesli posluzono sie opcja -p to type zwraca albo nazwe pliku dyskowego, ktory zostalby wykonany jesli nazwa zostalaby podana jako nazwa polecenia, albo nic jesli ``type -t name'' nie zwrociloby file. Opcja -P wymusza na PATH wyszukiwanie kazdego name, nawet jesli ``type -t name'' nie zwrociloby file. Jesli polecenie zostalo zapamietane poleceniem hash, to -p i -P wypisuje jego wartosc, ktory niekoniecznie jest plikiem pojawiajacym sie jako pierwszy w PATH. Jesli uzyto opcji -a, to type wypisuje wszystkie miejsca zawierajace plik wykonywalny o nazwie nazwa. Aliasy i funkcje sa uwzgledniane wylacznie jesli nie podano rowniez opcji -p. Tablica zapamietanym polecen nie jest sprawdzana, jesli uzyto -a. Opcja -f przeslania funkcje wyszukiwania powloki jak wbudowanym command. type zwraca prawde jesli odnaleziono wszystkie argumenty i falsz, gdy ktoregos z nich nie odnaleziono. ulimit [-HS] -a ulimit [-HS] [-bcdefiklmnpqrstuvxPRT [limit]] Provides control over the resources available to the shell and to processes started by it, on systems that allow such control. The -H and -S options specify that the hard or soft limit is set for the given resource. A hard limit cannot be increased by a non-root user once it is set; a soft limit may be increased up to the value of the hard limit. If neither -H nor -S is specified, both the soft and hard limits are set. The value of limit can be a number in the unit specified for the resource or one of the special values hard, soft, or unlimited, which stand for the current hard limit, the current soft limit, and no limit, respectively. If limit is omitted, the current value of the soft limit of the resource is printed, unless the -H option is given. When more than one resource is specified, the limit name and unit, if appropriate, are printed before the value. Other options are interpreted as follows: -a All current limits are reported; no limits are set -b Maksymalny rozmiar bufora gniazda -c Maksymalny rozmiar tworzonych plikow core -d Maksymalny rozmiar segmentu danych procesu -e Maksymalny priorytet planisty ("nice") -f Maksymalny rozmiar plikow zapisywanych przez powloke i jej potomkow -i Maksymalna liczba oczekujacych sygnalow -k Maksymalna liczba kqueue ktore mozna przypisac -l Maksymalny rozmiar, jaki moze zostac zablokowany w pamieci -m Maksymalny rozmiar czesci rezydentnej (wiele systemow nie przestrzega tego limitu) -n Maksymalna liczba otwartych deskryptorow pliku (wiekszosc systemow nie pozwala na ustawianie tej wartosci) -p Rozmiar potoku w blokach 512-bajtowych (moze nie byc ustawione) -q Maksymalny rozmiar kolejek komunikatow POSIX, w bajtach -r Maksymalny priorytet rzeczywisty planisty -s Maksymalny rozmiar stosu -t Maksymalny czas CPU w sekundach -u Maksymalna liczba procesow dostepnych dla pojedynczego uzytkownika -v Maksymalna wielkosc pamieci wirtualnej dostepna dla powloki i, w niektorych systemach, dla jej potomkow. -x Maksymalna liczba plikow blokad -P Maksymalna liczba pseudoterminali -R The maximum time a real-time process can run before blocking, in microseconds -T Maksymalna liczba watkow If limit is given, and the -a option is not used, limit is the new value of the specified resource. If no option is given, then -f is assumed. Values are in 1024-byte increments, except for -t, which is in seconds; -R, which is in microseconds; -p, which is in units of 512-byte blocks; -P, -T, -b, -k, -n, and -u, which are unscaled values; and, when in posix mode, -c and -f, which are in 512-byte increments. The return status is 0 unless an invalid option or argument is supplied, or an error occurs while setting a new limit. umask [-p] [-S] [tryb] Maska praw dostepu dla plikow tworzonych przez uzytkownika ustawiana jest na tryb. Jezeli tryb rozpoczyna sie od cyfry, jest interpretowany jako liczba osemkowa; w przeciwnym razie interpretowany jest jako maska w trybie symbolicznym, podobnie jak akceptowane przez chmod(1). Jezeli pominieto tryb wypisywana jest aktualna wartosc maski. Opcja -S powoduje, ze maska zostanie wypisana w postaci symbolicznej; domyslne wyjscie jest w postaci liczby osemkowej. Jezeli podano opcje -p i pominieto tryb, to wyjscie ma postac, ktora moze byc powtornie wykorzystana jako wejscie. Kodem zwracanym jest 0 jesli pomyslnie zmieniono tryb lub nie podano argumentu tryb, zas falsz w pozostalych sytuacjach. unalias [-a] [nazwa ...] Usuwa kazda z nazw z listy zdefiniowanych aliasow. Jezeli podano -a, to usuwane sa definicje wszystkich aliasow. Zwracanym kodem jest prawda, chyba ze podana nazwa nie jest zdefiniowanym aliasem. unset [-fv] [-n] [nazwa ...] For each name, remove the corresponding variable or function. If the -v option is given, each name refers to a shell variable, and that variable is removed. Read-only variables may not be unset. If -f is specified, each name refers to a shell function, and the function definition is removed. If the -n option is supplied, and name is a variable with the nameref attribute, name will be unset rather than the variable it references. -n has no effect if the -f option is supplied. If no options are supplied, each name refers to a variable; if there is no variable by that name, a function with that name, if any, is unset. Each unset variable or function is removed from the environment passed to subsequent commands. If any of BASH_ALIASES, BASH_ARGV0, BASH_CMDS, BASH_COMMAND, BASH_SUBSHELL, BASHPID, COMP_WORDBREAKS, DIRSTACK, EPOCHREALTIME, EPOCHSECONDS, FUNCNAME, GROUPS, HISTCMD, LINENO, RANDOM, SECONDS, or SRANDOM are unset, they lose their special properties, even if they are subsequently reset. The exit status is true unless a name is readonly or may not be unset. wait [-fn] [-p varname] [id ...] Wait for each specified child process and return its termination status. Each id may be a process ID or a job specification; if a job spec is given, all processes in that job's pipeline are waited for. If id is not given, wait waits for all running background jobs and the last-executed process substitution, if its process id is the same as $!, and the return status is zero. If the -n option is supplied, wait waits for a single job from the list of ids or, if no ids are supplied, any job, to complete and returns its exit status. If none of the supplied arguments is a child of the shell, or if no arguments are supplied and the shell has no unwaited-for children, the exit status is 127. If the -p option is supplied, the process or job identifier of the job for which the exit status is returned is assigned to the variable varname named by the option argument. The variable will be unset initially, before any assignment. This is useful only when the -n option is supplied. Supplying the -f option, when job control is enabled, forces wait to wait for id to terminate before returning its status, instead of returning when it changes status. If id specifies a non-existent process or job, the return status is 127. If wait is interrupted by a signal, the return status will be greater than 128, as described under SIGNALS above. Otherwise, the return status is the exit status of the last process or job waited for. TRYB KOMPATYBILNOSCI POWLOKI Bash-4.0 wprowadzil pojecie poziomu kompatybilnosci powloki, okreslonego jako zbior opcji do wbudowanego polecenia powloki shopt (compat31, compat32, compat40, compat41 itd.). Istnieje tylko jeden aktualny poziom kompatybilnosci -- opcje te sie wewnetrznie wykluczaja. Poziom kompatybilnosci ma pozwolic uzytkownikom na wybor zachowania z poprzednich wersji powloki, ktore jest niekompatybilne z nowszymi wersjami, na czas migracji skryptow do postaci korzystajacej z aktualnych cech i zachowania powloki. Z zalozenia ma to byc zatem rozwiazanie tymczasowe. Niniejszy rozdzial nie wspomina o zachowaniu, ktore jest standardem dla danej wersji (np. ustawienie compat32 oznacza, ze cytowanie dokonywane po prawej strony operatora dopasowania wyrazenia regularnego cytuje specjalne znaki wyrazenia regularnego w slowie, co jest domyslnym zachowaniem w powloce bash-3.2 i kolejnych wersjach). Jesli uzytkownik wlaczy np. compat32, moze to wplynac na zachowanie wszystkich wyzszych poziomow kompatybilnosci do biezacego poziomu kompatybilnosci wlacznie. Wynika to z tego, ze kazdy poziom kompatybilnosci kontroluje zachowanie, ktore uleglo zmianie w danej wersji powloki bash, lecz ktore moglo byc obecne w wersjach wczesniejszych. Na przyklad, zmiana polegajaca na korzystaniu z porownan, w oparciu o uzywane ustawienia jezykowe, przy poleceniu [[, pojawila sie w powloce bash-4.1, natomiast wczesniejsze wersje korzystaly z porownan ASCII, dlatego wlaczenie compat32 wlaczy rowniez porownania dzialajace w oparciu o ASCII. Ta szczegolowosc moze nie byc wystarczajaca we wszystkich zastosowaniach, dlatego z poziomow kompatybilnosci nalezy korzystac ostroznie. Prosze zapoznac sie z dokumentacja danej funkcji, aby poznac biezace zachowanie. Bash-4.3 wprowadzil nowa zmienna powloki: BASH_COMPAT. Wartosc przypisana tej zmiennej (jest to dziesietny numer wersji, taki jak 4.2; albo liczba calkowita odpowiadajaca opcji compatNN, taka jak 42) okresla poziom kompatybilnosci. Od wersji bash-4.4, rozpoczeto wycofywanie starszych poziomow kompatybilnosci w powloce Bash. Ostatecznie, opcje te zostana usuniete na korzysc stosowania BASH_COMPAT. Bash-5.0 jest ostatnia wersja, w ktorej beda istnialy oddzielne opcje shopt dla poprzedniej wersji. Uzytkownicy powinni korzystac z BASH_COMPAT w powloce bash-5.0 i kolejnych wersjach. Ponizsza tabela opisuje zmiany zachowania kontrolowane przez kazde ustawienie poziomu kompatybilnosci. Znacznik compatNN jest uzywany jako skrotowe ukazanie ustawienia poziomu kompatybilnosci na NN za pomoca jednego z nastepujacy mechanizmow. W wersjach wczesniejszych niz bash-5.0, poziom kompatybilnosci mozna ustawic za pomoca odpowiedniej opcji shopt compatNN. W powloce bash-4.3 i pozniejszych, preferowane jest korzystanie ze zmiennej BASH_COMPAT, natomiast w powloce bash-5.1 i pozniejszych jest ono wymagane. compat31 o quoting the rhs of the [[ command's regexp matching operator (=~) has no special effect compat32 o przerwanie listy polecen takiej jak "a ; b ; c" powoduje wykonanie kolejnego polecenia z listy (w powloce bash-4.0 i pozniejszych, powloka dziala w ten sposob, jak gdyby otrzymala przerwanie, zatem przerwanie jednego polecenia listy przerywa wykonanie calej listy) compat40 o the < and > operators to the [[ command do not consider the current locale when comparing strings; they use ASCII ordering. Bash versions prior to bash-4.1 use ASCII collation and strcmp(3); bash-4.1 and later use the current locale's collation sequence and strcoll(3). compat41 o w trybie posix, po time moga wystepowac opcje i bedzie to wciaz rozpoznawane jako slowo zastrzezone (jest to interpretacja POSIX nr 267) o in posix mode, the parser requires that an even number of single quotes occur in the word portion of a double-quoted parameter expansion and treats them specially, so that characters within the single quotes are considered quoted (this is POSIX interpretation 221) compat42 o the replacement string in double-quoted pattern substitution does not undergo quote removal, as it does in versions after bash-4.2 o in posix mode, single quotes are considered special when expanding the word portion of a double-quoted parameter expansion and can be used to quote a closing brace or other special character (this is part of POSIX interpretation 221); in later versions, single quotes are not special within double-quoted word expansions compat43 o the shell does not print a warning message if an attempt is made to use a quoted compound assignment as an argument to declare (e.g., declare -a foo='(1 2)'). Later versions warn that this usage is deprecated o word expansion errors are considered non-fatal errors that cause the current command to fail, even in posix mode (the default behavior is to make them fatal errors that cause the shell to exit) o when executing a shell function, the loop state (while/until/etc.) is not reset, so break or continue in that function will break or continue loops in the calling context. Bash-4.4 and later reset the loop state to prevent this compat44 o the shell sets up the values used by BASH_ARGV and BASH_ARGC so they can expand to the shell's positional parameters even if extended debugging mode is not enabled o a subshell inherits loops from its parent context, so break or continue will cause the subshell to exit. Bash-5.0 and later reset the loop state to prevent the exit o variable assignments preceding builtins like export and readonly that set attributes continue to affect variables with the same name in the calling environment even if the shell is not in posix mode compat50 o Bash-5.1 changed the way $RANDOM is generated to introduce slightly more randomness. If the shell compatibility level is set to 50 or lower, it reverts to the method from bash-5.0 and previous versions, so seeding the random number generator by assigning a value to RANDOM will produce the same sequence as in bash-5.0 o If the command hash table is empty, bash versions prior to bash-5.1 printed an informational message to that effect, even when producing output that can be reused as input. Bash-5.1 suppresses that message when the -l option is supplied. compat51 o The unset builtin treats attempts to unset array subscripts @ and * differently depending on whether the array is indexed or associative, and differently than in previous versions. POWLOKA OKROJONA Jesli bash uruchomiony jest pod nazwa rbash, lub przy jego wywolaniu posluzono sie opcja -r, to staje sie powloka okrojona (restricted). Powloka okrojona sluzy do ustawienia srodowiska lepiej kontrolowanego niz powloka standardowa. Zachowuje sie ona identycznie jak bash z wyjatkiem tego, ze ponizsze nie sa dozwolone lub nie sa wykonywane: o zmiana katalogow przy pomocy cd o ustawianie lub kasowanie wartosci SHELL, PATH, HISTFILE, ENV lub BASH_ENV o podawanie nazw polecen zawierajacych / o podawanie nazw plikow zawierajacych / jako argumentu wbudowanego polecenia . (kropka). o specifying a filename containing a slash as an argument to the history builtin command o podawanie nazwy pliku zawierajacej ukosnik jako argument do opcji -p wbudowanego polecenia hash. o importowanie definicji funkcji ze srodowiska powloki przy uruchamianiu o analiza wartosci SHELLOPTS ze srodowiska powloki przy uruchamianiu o przekierowywanie wyjscia przy pomocy operatorow >, >|, <>, >&, &> i >> o poslugiwanie sie wbudowanym poleceniem exec w celu zastapienia powloki innym poleceniem o dodawanie lub usuwanie polecen przy pomocy opcji -f i -d wbudowanego polecenia enable o uzywanie wbudowanego polecenia enable do wlaczania wylaczonych wbudowanych polecen powloki o podawanie opcji -p wbudowanego polecenia command o turning off restricted mode with set +r or shopt -u restricted_shell. Powyzsze ograniczenia wymuszane sa po przeczytaniu plikow uruchomieniowych. When a command that is found to be a shell script is executed (see COMMAND EXECUTION above), rbash wylacza wszelkie ograniczenia w powloce zrodzonej do wykonania skryptu. ZOBACZ TAKZE Bash Features, Brian Fox i Chet Ramey The Gnu Readline Library, Brian Fox i Chet Ramey The Gnu History Library, Brian Fox i Chet Ramey Portable Operating System Interface (POSIX) Part 2: Shell and Utilities, IEEE -- http://pubs.opengroup.org/onlinepubs/9699919799/ http://tiswww.case.edu/~chet/bash/POSIX -- opis trybu posix sh(1), ksh(1), csh(1) emacs(1), vi(1) readline(3) PLIKI /bin/bash Plik wykonywalny powloki bash /etc/profile Ogolnosystemowy plik inicjujacy, wykonywany dla powlok zgloszeniowych ~/.bash_profile Osobisty plik inicjujacy, wykonywany dla powlok zgloszeniowych ~/.bashrc Indywidualny plik startowy dla powloki trybu interaktywnego ~/.bash_logout Indywidualny plik porzadkujacy dla powloki zgloszeniowej, wykonywany podczas konczenia przez nia pracy ~/.bash_history Domyslna wartosc HISTFILE -- pliku, w ktorym bash przechowuje historie polecen ~/.inputrc Indywidualny plik inicjujacy do readline AUTORZY Brian Fox, Free Software Foundation bfox@gnu.org Chet Ramey, Case Western Reserve University chet.ramey@case.edu ZGLOSZENIA BLEDOW Jesli znajdziesz w bash blad, powinienes go zglosic. Ale najpierw powinienes upewnic sie, ze rzeczywiscie jest to blad i ze pojawia sie w najswiezszej wersji bash jaka masz. Jest ona zawsze dostepna pod adresem ftp://ftp.gnu.org/pub/gnu/bash/ i http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz. Po ustaleniu, ze blad faktycznie istnieje, uzyj polecenia bashbug do wyslania zgloszenia bledu. Jesli masz poprawke usuwajaca problem, zachecamy do przeslania jej rowniez! Sugestie i `filozoficzne' zgloszenia bledow moga byc przesylane [w jezyku angielskim] do bug-bash@gnu.org lub wysylane na grupe dyskusyjna gnu.bash.bug. WSZYSTKIE zgloszenia bledow powinny zawierac: Numer wersji bash Sprzet i system operacyjny Uzyty kompilator Opis blednego zachowania Krotki skrypt lub przepis na uzyskanie bledu bashbug wstawia pierwsze trzy pozycje automatycznie do szablonu jaki udostepnia w celu wypelnienia zgloszenia bledow. Komentarze i zgloszenia bledow dotyczace tej strony podrecznika [oryginalu] powinny byc kierowane na adres chet.ramey@case.edu. USTERKI Jest za duzy i zbyt wolny. Istnieje troche subtelnych roznic pomiedzy bash a tradycyjnymi wersjami sh, glownie z powodu specyfikacji POSIX. Aliasy w niektorych zastosowaniach wprawiaja w zaklopotanie. Polecen wbudowanych powloki i funkcji nie mozna zatrzymywac/wznawiac. Polecenia zlozone i sekwencje polecen postaci `a ; b ; c' nie sa obslugiwane przychylnie przy probie wstrzymania procesu. Gdy proces jest zatrzymany, powloka natychmiast wykonuje nastepne polecenie sekwencji. Wystarcza umieszczanie sekwencji polecen wewnatrz nawiasow by wymusic wykonanie ich przez podpowloke, ktora moze byc zatrzymana jako calosc. Zmienne tablicowe nie moga byc (na razie) eksportowane. Moze istniec tylko jeden aktywny koproces w danym czasie. TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Wojtek Kotwica i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . GNU Bash 5.22 19 wrzesnia 2022 BASH(1)