Provided by:
manpages-pl_20060617-3_all 
NAZWA
bash - GNU Bourne-Again SHell
SK/LADNIA
bash [opcje] [plik]
COPYRIGHT
Bash is Copyright (C) 1989-2001 by the Free Software Foundation, Inc.
OPIS
Bash jest zgodnym z sh interpreterem jzyka polece, wykonujcym polecenia
ze standardowego wejcia bd z pliku. Wlczono do rownie przydatne cechy
zaczerpnite z powloki Korna i powloki C (ksh i csh).
Bash w zamierzeniu jest implementacj zgodn z POSIX-ow specyfikacj
powlok i narzdzi -- IEEE POSIX Shell and Tools specification (IEEE
Working Group 1003.2).
OPCJE
Oprocz jednoznakowych opcji powloki udokumentowanych w opisie
wbudowanego polecenia set, bash przy wywolaniu interpretuje ponisze
opcje:
-c /lacuch Jeli wystpuje opcja -c, to polecenia odczytywane s z /lacucha.
Jeeli po /lacuchu istniej argumenty, to s one przypisywane do
argumentow pozycyjnych, poczynajc od $0.
-r Jeeli wystpuje opcja -r, to powloka staje si powlok okrojon
(restricted). Zobacz poniej POW/LOKA OKROJONA.
-i Jeeli wystpuje opcja -i, to powloka jest interaktywna.
-s Jeli wystpuje opcja -s lub po przetworzeniu opcji nie
pozostaj adne argumenty, to polecenia odczytywane s ze
standardowego wejcia. Opcja ta umoliwia na ustawienie
parametrow pozycyjnych podczas wywolania powloki
interaktywnej.
-D Na standardowym wyjciu wypisywana jest lista wszystkich
podwojnie cytowanych lacuchow poprzedzonych znakiem $. S to
lacuchy bdce przedmiotem tlumaczenia jzyka, gdy biecym
ustawieniem regionalnym (locale) nie jest C ani POSIX.
Implikuje to opcj -n; nie zostan wykonane adne polecenia.
[-+]O [opcja_shopt]
opcja_shopt jest jedn z ocpji powloki akceptowanych przez
polecenie wbudowane shopt (zobacz WBUDOWANE POLECENIA POW/LOKI
poniej). Jeli wystpuje opcja_shopt, to -O nadaje warto tej
opcji, za +O uniewania j. Jeeli nie podano opcji_shopt, to
na standardowym wyjciu wypisywane s nazwy i wartoci opcji
powloki akceptowanych przez shopt. Jeli opcj wywolania jest
+O, tworzone wyjcie jest formatowane w taki sposob, by mona
bylo wykorzysta je jako wejcie.
-- Zapis -- sygnalizuje koniec opcji i wylcza dalsze ich
przetwarzanie. Argumenty wystpujce po -- traktowane s jako
nazwy plikow i argumenty. Argument - jest rownowanikiem --.
Bash interpretuje take wiele opcji wieloznakowych. Jeli maj zosta
rozpoznane, opcje te musz pojawi si w wierszu polece przed opcjami
jednoznakowymi,
--dump-po-strings
Rownowane -D, ale wyjcie jest w formacie pliku GNU gettext po
(portable object).
--dump-strings
Rownowanik -D.
--help Wywietla na standardowym wyjciu komunikat o uytkowaniu i
pomylnie koczy prac.
--init-file plik
--rcfile plik
Wykonuje polecenia z podanego pliku zamiast ze standardowego
osobistego pliku inicjujcego ~/.bashrc, jeli powloka jest
interaktywna. Zobacz WYWO/LANIE poniej.
--login
Sprawia, e bash dziala tak, jakby zostal wywolany jako powloka
zgloszeniowa (login shell). Zobacz WYWO/LANIE poniej.
--noediting
Nie uywa biblioteki GNU readline do odczytu wierszy polece w
trybie interaktywnym.
--noprofile
Nie odczytuje ani ogolnosystemowego pliku startowego
/etc/profile ani adnego z osobistych plikow inicjujcych
~/.bash_profile, ~/.bash_login czy ~/.profile. Domylnie, bash
czyta te pliki gdy jest wywolany jako powloka zgloszeniowa
(zobacz WYWO/LANIE poniej).
--norc Nie odczytuje i nie wykonuje osobistego pliku inicjujcego
~/.bashrc jeli powloka jest interaktywna. Opcja ta jest domylnie
wlczona, jeeli powlok wywolano jako sh.
--posix
Zmienia zachowanie bash tam, gdzie operacja domylna roni si od
standardu POSIX 1003.2 tak, by dostosowa si do niego (tryb
posix).
--restricted
Powloka staje si okrojona (zobacz POW/LOKA OKROJONA poniej).
--verbose
Rownowanik opcji -v.
--version
Pokazuje na standardowym wyjciu informacj o wersji tego
egzemplarza bash i pomylnie koczy prac.
ARGUMENTY
Jeli po przetworzeniu opcji pozostaj jakie argumenty, a nie
podano ani opcji -c ani -s, to zaklada si, e pierwszy argument
jest nazw pliku zawierajcego polecenia powloki. Jeeli 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
nastpnie koczy prac. Kod zakoczenia basha jest wowczas kodem
zakoczenia ostatniego wykonanego polecenia skryptu. Jeli nie
wykonano adnego polecenia, to kod zakoczenia wynosi 0.
WYWO/LANIE
Pow/loka zg/loszeniowa (login shell) to taka, w ktorej pierwszym
znakiem zerowego argumentu jest -, lub taka, ktor uruchomiono z
opcj --login.
Powloka interaktywna to taka, ktor uruchomiono bez argumentow
innych ni opcje i bez opcji -c; zarowno jej standardowe wejcie
jak i wyjcie powizane jest z terminalami (tak jak okrelila to
funkcja isatty(3)), albo taka, ktor uruchomiono z opcj -i. Jeli
bash jest interaktywny, to ustawiane jest PS1 za $- zawiera i;
pozwala to skryptowi powloki lub plikowi startowemu na
sprawdzanie tego stanu.
Ponisze akapity opisuj, jak bash wykonuje swoje pliki startowe.
Jeli ktory z tych plikow istnieje, ale nie moe by odczytany, to
bash zglasza bld. Tyldy (~) w nazwach plikow interpretowane s
wedlug regul opisanych poniej w czci Interpretacja tyld sekcji
INTERPRETACJA.
Gdy bash wywolywany jest jako powloka zgloszeniowa lub jako
powloka nie-interaktywna z opcj --login, w pierwszej kolejnoci
czyta i wykonuje polecenia z pliku /etc/profile, jeli takowy
istnieje. Po odczytaniu tego pliku, szuka ~/.bash_profile,
~/.bash_login i ~/.profile, w tej kolejnoci, po czym odczytuje i
wykonuje polecenia z pierwszego istniejcego i dajcego si
odczyta. Mona posluy si opcj --noprofile podczas uruchamiania
powloki, by zakaza takiego zachowania.
Podczas koczenia pracy powloki zgloszeniowej, bash czyta i
wykonuje polecenia z pliku ~/.bash_logout, jeli taki istnieje.
Jeeli uruchamiana jest powloka interaktywna nie bdca powlok
zgloszeniow, bash czyta i wykonuje polecenia z ~/.bashrc, jeli
taki plik istnieje. Moe to by zakazane za pomoc opcji --norc.
Opcja --rcfile plik wymusi odczyt i wykonanie polece z pliku
zamiast z ~/.bashrc.
Jeli bash startuje w trybie nie-interaktywnym, na przyklad w
celu uruchomienia skryptu powloki, to szuka w rodowisku zmiennej
BASH_ENV, interpretuje jej warto, jeli j znalazl, i uywa
otrzymanej wartoci jako nazwy pliku do odczytania i wykonania.
Bash zachowuje si tak, jakby byly wykonane nastpujce polecenia:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
ale do szukania nazwy pliku nie jest uywana warto zmiennej PATH.
Jeeli bash wywolano pod nazw sh, to probuje on naladowa
zachowanie startowe historycznych wersji sh tak cile jak to jest
moliwe, przy rownoczesnym spelnianiu standardu POSIX. Wywolany
jako powloka interaktywna lub powloka nie-interaktywna z opcj
--login, usiluje na pocztku odczyta i wykona polecenia z
/etc/profile i ~/.profile, w tej kolejnoci. W celu zakazania
tego zachowania mona uy opcji --noprofile. Wywolany jako
powloka interaktywna pod nazw sh, bash poszukuje zmiennej ENV,
interpretuje jej warto, jeli jest zdefiniowana, i posluguje si
otrzyman wartoci jako nazw pliku, ktory ma by odczytany i
wykonany. Poniewa powloka wywolana jako sh nie usiluje czyta
ani wykonywa polece z jakichkolwiek innych plikow startowych,
opcja --rcfile nie ma adnych skutkow. Powloka nie-interaktywna
wywolana pod nazw sh nie probuje czyta adnych plikow startowych.
Wywolany jako sh, bash wchodzi w tryb posix po odczycie plikow
startowych.
Gdy bash uruchomiony jest w trybie posix, jak z opcj --posix
wiersza polece, kieruje si standardem POSIX dla plikow
startowych. W trybie tym, powloka interaktywna interpretuje
zmienn ENV a polecenia odczytywane i wykonywane s z pliku,
ktorego nazw jest zinterpretowana warto. Nie s czytane inne
pliki startowe.
Bash usiluje rozstrzygn, czy jest uruchomiony przez demona
powloki zdalnej, zwykle rshd. Jeeli stwierdzi, e zostal
uruchomiony przez rshd, to odczytuje i wykonuje polecenia z
~/.bashrc, jeli plik ten istnieje i daje si czyta. Nie bdzie
tego robil wywolany jako sh. Mona posluy si opcj --norc, by
zakaza tego zachowania oraz opcj --rcfile, by wymusi czytanie
innego pliku, ale rshd zazwyczaj nie wywoluje powloki z tymi
opcjami ani nie pozwala na ich podanie.
Jeli powloka zostala uruchomiona z efektywnym id uytkownika
(grupy) ronym od id rzeczywistego, a nie podano opcji -p, to nie
s odczytywane adne pliki startowe, funkcje powloki nie s
dziedziczone ze rodowiska, zmienna SHELLOPTSP, jeli jest taka w
rodowisku, jest ignorowana a efektywny identyfikator uytkownika
jest ustawiany na jego identyfikator rzeczywisty. Jeli przy
wywolaniu podano opcj -p, to zachowanie startowe jest takie
samo, ale nie jest resetowany efektywny id uytkownika.
DEFINICJE
W pozostalej czci tego dokumentu uywane s ponisze definicje.
odstp Spacja lub znak tabulacji.
s/lowo Sekwencja znakow uwaana przez powlok za pojedyncz
jednostk. Znana te jako token.
nazwa Jest to s/lowo skladajce si wylcznie ze znakow
alfanumerycznych i znakow podkrelenia, i rozpoczynajce si
znakiem alfabetycznym lub podkreleniem. Wspominane rownie
jako identyfikator.
metaznak
Znak, ktore, gdy nie jest cytowany, oddziela slowa. Jeden
z poniszych:
| & ; ( ) < > spacja tab
operator sterujcy
token pelnicy funkcj sterujc. Jest to jeden z poniszych
symboli:
|| & && ; ;; ( ) | <nowalinia>
S/LOWA ZASTRZEONE
S/lowa zastrzeone (reserved words) to takie, ktore maj dla
powloki specjalne znaczenie. Nastpujce slowa s rozpoznawane
jako zastrzeone, gdy nie s cytowane i wystpuj albo jako pierwsze
slowo polecenia prostego (zobacz GRAMATYKA POW/LOKI poniej) albo
trzecie slowo polece case lub for;
! case do done elif else esac fi for function if in select then
until while { } time [[ ]]
GRAMATYKA POW/LOKI
Polecenia proste
Polecenie proste jest sekwencj opcjonalnych przypisa zmiennych,
po ktorej nastpuj rozdzielane przez odstp slowa i
przekierowania, a zakoczon operatorem sterujcym. Pierwsze slowo
okrela polecenie, jakie ma zosta wykonane i jest przekazywane
jako argument numer zero. Pozostale slowa s przekazywane jako
argumenty wywolywanego polecenia.
Wartoci zwracan polecenia prostego jest jego kod zakoczenia lub
128+n jeeli polecenie przerwane jest sygnalem n.
Potoki
Potok jest sekwencj jednego lub wicej polece rozdzielonych
znakiem |. Formatem potoku jest:
[time [-p]] [ ! ] polecenie [ | polecenie2 ... ]
Standardowe wyjcie z polecenia polczone jest za porednictem
potoku ze standardowym wejciem polecenia2. Polczenie to
wykonywane jest przed moliwymi przekierowaniami podanymi dla
polecenia (zobacz poniej PRZEKIEROWANIE.
Jeeli potok poprzedza zastrzeone slowo !, to kod zakoczenia
takiego potoku jest negacj (NOT) kodu zakoczenia ostatniego
polecenia. W przeciwnym wypadku, kodem potoku jest kod
zakoczenia ostatniego polecenia. Powloka oczekuje na zakoczenie
(terminate) wszystkich polece w potoku przed zwroceniem wartoci.
Jeeli potok jest poprzedzony slowem zastrzeonym time, to po jego
zakoczeniu podawany jest czas wykonywania, jak rownie czas
uytkownika i czas systemu zuyty na wykonanie. Opcja -p zmienia
format tworzonych wynikow na okrelony przez POSIX. Do
sformatowania lacucha okrelajcego, jak powinna by wywietlana
informacja o czasach, mona ustawi zmienn TIMEFORMAT; zobacz opis
TIMEFORMAT w Zmienne pow/loki poniej.
Kade polecenie w potoku uruchamiane jest jako odrbny proces (tj.
w podpowloce).
Listy
Lista jest potokiem lub sekwencj kilku potokow rozdzielonych
jednym z operatorow ;, &, && lub ||, i opcjonalnie zakoczon
jednym ze znakow ;, & lub <nowalinia>.
Sporod tych operatorow listowych, && i || maj ten sam priorytet,
nastpujce po nich ; i &, rownie maj rowny midzy sob priorytet.
Jeli polecenie zakoczone jest operatorem sterujcym &, to powloka
wykonuje je w tle (background) w podpowloce. Powloka
macierzysta nie oczekuje na zakoczenie polecenia, a zwracany kod
wynosi 0. Polecenia oddzielane znakiem rednika ; wykonywane s
sekwencyjnie; powloka oczekuje na zakoczenie pracy przez kade z
nich po kolei. Zwracany kod jest kodem zakoczenia ostatniego
wykonanego polecenia.
Operatory sterujce && i || oznaczaj odpowiednio listy AND i OR.
Lista AND ma posta
polecenie2 wykonywane jest wtedy, i tylko wtedy, gdy polecenie1
zwraca zerowy kod zakoczenia.
Lista OR ma posta
polecenie1 || polecenie2
polecenie2 jest wykonywane wtedy, i tylko wtedy, gdy polecenie1
zwraca niezerowy kod zakoczenia. Kod zwracany przez listy AND i
OR jest kodem zakoczenia ostatniego wykonanego polecenia listy.
Polecenia z/loone
Polecenie z/loone (compound command) jest jednym z poniszych:
(lista)
lista wykonywana jest w podpowloce. Przypisania zmiennych
i polecenia wbudowane wplywajce na rodowisko powloki nie
zachowuj swoich skutkow po zakoczeniu polecenia.
Zwracanym kodem jest kod zakoczenia listy.
{ lista; }
lista jest po prostu wykonywana w biecym rodowisku
powloki. lista musi by zakoczona znakiem nowej linii lub
rednika. Nazywane jest to poleceniem grupowania.
Zwracanym kodem jest kod zakoczenia listy. Naley pamita,
e w przeciwiestwie do metaznakow ( i , { i } s s/lowami
zastrzeonymi i aby zostaly rozpoznane musz si pojawi tam,
gdzie dozwolone jest uycie slow zastrzeonych. Poniewa
nie powoduj podzialu na slowa, musz by oddzielone od
listy za pomoc bialego znaku.
((wyraenie))
wyraenie interpretowane jest zgodnie z zasadami opisanymi
poniej w sekcji OBLICZANIE WYRAE ARYTMETYCZNYCH. Jeli
warto wyraenia jest niezerowa, to kodem zwracanym jest 0;
w przeciwnym razie kodem zwracaym jest 1. Jest to cile
rownowane konstrukcji let "wyraenie".
[[ wyraenie ]]
Zwraca kod 0 lub 1 w zalenoci od interpretacji wyraenia
warunkowego wyraenie. Wyraenia zloone s ze skladowych
(primaries) opisanych poniej w opcji WYRAENIA WARUNKOWE.
Na slowach pomidzy [[ a ]] nie s wykonywane rozwinicia
nazw plikow ani podzial na slowa; s natomiast wykonywane:
interpretacja tyld, parametrow i zmiennych, interpretacja
wyrae arytmetycznych, podstawianie wynikow polece,
podstawianie wynikow procesow i usunicia cytowa.
Gdy uywane s operatory == i !=, lacuch na prawo od
operatora traktowany jest jak wzorzec i dopasowywany
zgodnie z zasadami opisanymi poniej w sekcji
Dopasowywanie wzorc'ow. Wartoci zwracan jest 0 jeli lacuch
odpowiednio pasuje lub nie pasuje do wzorca, za 1 w
przeciwnym przypadku. Mona zacytowa dowoln cz wzorca w
celu wymuszenia dopasowywania jej jako lacucha.
Wyraenia mona lczy przy pomocy nastpujcych operatorow,
wymienionych w kolejnoci malejcego priorytetu:
( wyraenie )
Zwraca warto wyraenia. Moe sluy do uniewanienia
zwyklej kolejnoci operatorow.
! wyraenie
Prawda jeeli wyraenie jest falszywe.
wyraenie1 && wyraenie2
Prawda jeli zarowno wyraenie1 jak i wyraenie2 s
prawdziwe.
wyraenie1 || wyraenie2
Prawda jeli cho jedno sporod wyraenie1 lub
wyraenie2 jest prawdziwe.
Operatory && i || nie wykonuj wyraenia2 jeeli warto
wyraenia1 wystarcza do okrelenia wartoci, jaka zostanie
zwrocona przez cale wyraenie warunkowe.
for nazwa [ in s/lowo ] ; do lista ; done
Interpretowane s slowa nastpujce po in, tworzc list
elementow. Zmiennej nazwa nadawana jest kolejno warto
kadego elementu tej listy i kadorazowo wykonywana jest
lista polece. Jeeli pominito in s/lowo, to polecenie for
wykonuje list po jednym razie dla kadego ustawionego
parametru pozycyjnego (zobacz PARAMETRY poniej).
Zwracanym kodem jest kod zakoczenia ostatniego wykonanego
polecenia. Jeli interpretacja elementow nastpujcych po
in daje w wyniku pust list, to nie s wykonywane adne
polecenia i zwracany jest kod 0.
for (( wyr1 ; wyr2 ; wyr3 )) ; do lista ; done
Na pocztku obliczane jest wyraenie arytmetyczne wyr1,
zgodnie z zasadami opisanymi poniej w OBLICZANIE WYRAE
ARYTMETYCZNYCH. Nastpnie wielokrotnie obliczane jest
wyr2, a do osignicia przez nie wartoci zero. Kadorazowo
gdy obliczone wyr2 jest niezerowe, wykonywana jest lista
i obliczane jest wyraenie arytmetyczne wyr3. Jeli
pominito ktore z wyrae, to zachowuje si ono tak, jakby
przyjmowalo warto 1. Zwracanym kodem jest kod zakoczenia
ostatniego wykonanego polecenia listy, lub falsz jeli
ktore z wyrae jest niepoprawne.
select nazwa [ in s/lowo ] ; do lista ; done
Interpretowana jest lista slow nastpujcych po in, tworzc
list elementow. Zestaw zinterpretowanych slow wypisywany
jest na standardowym wyjciu, kade poprzedzone liczb
kolejn. Jeli pominito in s/lowo, to wypisywane s parametry
pozycyjne (zobacz PARAMETRY poniej). Nastpnie wywietlana
jest zachta PS3 i czytany jest wiersz ze standardowego
wejcia. Jeeli wiersz sklada si z liczby odpowiadajcej
jednemu z wywietlonych slow, to zmiennej nazwa
przypisywana jest warto tego slowa. Jeli wiersz jest
pusty, slowa i zachta wywietlane s ponownie. Jeeli
odczytano EOF, to polecenie koczy prac. Kada inna warto
powoduje, e nazwie zostanie przypisany lacuch pusty.
Odczytany wiersz zachowywany jest w zmiennej REPLY.
lista wykonywana jest po kadym wyborze, dopoki nie
zostanie wykonane polecenie break. Kodem zakoczenia
select jest kod zakoczenia ostatniego wykonanego
polecenia listy lub zero jeli nie wykonano adnych polece.
case s/lowo in [ [(] wzorzec [ | wzorzec ] ... ) lista ;; ] ...
esac
Polecenie case najpierw interpretuje s/lowo i probuje
dopasowa uzyskany wynik kadego z wzorc'ow po kolei,
poslugujc si tymi samymi regulami dopasowywania, co dla
rozwijania nazw ciekowych (zobacz Rozwijanie nazw
ciekowych poniej). Gdy znalezione zostanie dopasowanie,
wykonywana jest odpowiadajca mu lista. Po pierwszym
dopasowaniu nie s dokonywane proby dopasowania
pozostalych wzorcow. Jeli aden ze wzorcow nie pasuje do
kodem zakoczenia jest zero. W przeciwnym razie jest rowny
kodowi zakoczenia ostatniego z wykonanych polece listy.
if lista; then lista; [ elif lista; then lista; ] ... [ else
lista; ] fi
Wykonywana jest lista wystpujca po if. Jeeli jej kod
zakoczenia jest zerowy, to wykonywana jest lista klauzuli
then. W przeciwnym wypadku, wykonywana jest lista kadego
elif po kolei; jeli kod zakoczenia ktorej wynosi 0, to
wykonywana jest lista then i polecenie jest koczone.
Jeeli nie wystpil aden z powyszych przypadkow, to
wykonywana jest lista wystpujca po klauzuli else, jeli
takowa istnieje. Kodem zakoczenia jest kod ostatniego
wykonanego polecenia listy lub zero jeli aden z warunkow
nie okazal si prawdziwy.
while lista; do lista; done
until lista; do lista; done
Polecenie while powtarza wykonywanie listy podanej po do
tak dlugo, jak dlugo ostatnie polecenie listy while
zwraca zerowy kod zakoczenia. Polecenie until dziala
identycznie jak while, poza tym, e warunek jest
zanegowany: do lista wykonywane jest tak dlugo, jak dlugo
ostatnie polecenie listy until zwraca niezerowy kod
zakoczenia. Kod zakoczenia polece while i until jest
rowny kodowi zakoczenia ostatniego z wykonanych polece
listy do lub zeru jeli adne nie zostalo wykonane.
[ function ] nazwa () { lista; }
Definuje to funkcj nazwan nazwa. Cia/lem funkcji jest
lista polece zawarta pomidzy { i }. Lista ta jest
wykonywana w za kadym razem gdy nazwa wystpuje jako
polecenie proste. Kodem zakoczenia funkcji jest kod
zakoczenia ostatniego z wykonanych polece jej ciala.
(Zobacz FUNKCJE poniej.)
KOMENTARZE
W powloce nie-interaktywnej lub w powloce interaktywnej, w
ktorej wlczono opcj interactive_comments do opcji wbudowanych
shopt(zobacz WBUDOWANE POLECENIA POW/LOKI poniej) slowo
rozpoczynajce si od znaku # powoduje, e slowo to i wszystkie
pozostale znaki w tym wierszu bd ignorowane. Powloka
interaktywna bez wlczonej opcji interactive_comments nie pozwala
na komentarze. Opcja interactive_comments jest domylnie wlczona
w powlokach interaktywnych.
CYTOWANIE
Cytowanie sluy do usuwania specjalnego znaczenia dla powloki
pewnych znakow lub slow. Cytowanie mona stosowa do wylczania
specjalnego traktowania znakow specjalnych, zapobiegania
rozpoznawaniu slow zastrzeonych jako takich oraz do zapobiegania
podstawianiu parametrow.
Kady z metaznak'ow podanych powyej w DEFINICJACH posiada dla
powloki specjalne znaczenie i musi by cytowany, jeli ma oznacza
samego siebie.
Gdy uywane s funkcje interpretacji historii polece, znak
interpretacji historii, zwykle !, musi by cytowany, jeli chce si
unikn interpretacji historii.
Istniej trzy mechanizmy cytowania: znak
specjalny(escapecharacter), apostrofy (pojedyncze cudzyslowy) i
cudzyslowy zwykle (podwojne).
Niecytowany odwrotny ukonik (\) jest znakiem specjalnym. Chroni
on przed interpretacj doslown warto nastpujcego po nim znaku, z
wyjtkiem <nowejlinii>. Jeli pojawi si para \<nowalinia> a sam
odwrotny ukonik nie jest cytowany, to traktowana jest ona jak
kontynuacja wiersza (to znaczy, usuwana jest ze strumienia
wejciowego i w efekcie ignorowana).
Ujcie znakow w apostrofy chroni doslowne wartoci kadego z nich.
Apostrof nie moe pojawi si pomidzy innymi apostrofami, nawet
jeli jest poprzedzony odwrotnym ukonikiem.
Ujcie znakow w cudzyslowy chroni doslowne wartoci kadego z nich,
za wyjtkiem $, ` i \. Znaki $ i ` zachowuj swe specjalne
znaczenie wewntrz cudzyslowow. Odwrotny ukonik zachowuje
specjalne znaczenie tylko, gdy wystpuje po nim jeden z poniszych
znakow: $, `, ", \ lub <nowalinia>. Cudzyslow moe by cytowany
wewntrz cudzyslowow przez poprzedzenie go odwrotnym ukonikiem.
Parametry specjalne * i @ posiadaj specjalne znaczenie wewntrz
cudzyslowow (zobacz PARAMETRY poniej).
Slowa postaci $'/lacuch' traktowane s specjalnie. Slowo takie
interpretowane jako /lacuch, w ktorym znaki poprzedzone odwrotnym
ukonikiem zastpowane s wedlug standardu ANSI C. Sekwencje
specjalne z odwrotnym ukonikiem, jeli wystpuj, dekodowane s
nastpujco:
\a alarm (dzwonek)
\b backspace
\e znak escape
\f znak wysuwu strony (form feed)
\n znak nowej linii (new line)
\r powrot karetki (carriage return)
\t tabulacja pozioma (horizontal tab)
\v tabulacja pionowa (vertical tab)
\\ odwrotny ukonik (backslash)
\' apostrof
\nnn omiobitowy znak, ktorego wartoci jest osemkowa
liczba nnn (jedna do trzech cyfr)
\xnnn omiobitowy znak, ktorego wartoci jest szesnastkowa
liczba nnn (jedna do trzech cyfr szesnastkowych)
Przetlumaczony wynik jest pojedynczo cytowany, tak jakby nie
bylo znaku dolara.
Ujty w cudzyslowy lacuch poprzedzony znakiem dolara ($)
spowoduje, e lacuch zostanie zinterpretowany zgodnie z biecymi
ustawieniami regionalnymi (locale). Jeli ustawione s one na C
lub POSIX, to znak dolara jest ignorowany. Jeeli lacuch jest
tlumaczony i zamieniany, to zastpienie jest podwojnie cytowane.
PARAMETRY
Parametr jest elementem przechowujcym wartoci. Moe on by nazw,
liczb lub jednym ze znakow specjalnych podanych poniej w sekcji
Parametry specjalne. Dla celow powloki zmienna jest parametrem
oznaczanym przez nazw. Zmienna posiada warto i zero lub wicej
atrybut'ow. Warto atrybutom przypisuje si za pomoc polecenia
wbudowanego declare (zobacz opis tego polecenia poniej, w sekcji
WBUDOWANE POLECENIA POW/LOKI).
Parametr jest ustawiony jeli przypisano mu warto. Lacuch pusty
jest poprawn wartoci. Po ustawieniu zmiennej, moe by ona
uniewaniona wylcznie przez uycie wbudowanego polecenia unset
(zobacz poniej WBUDOWANE POLECENIA POW/LOKI).
Do zmiennej mona wykona przypisanie przy pomocy instrukcji
postaci
nazwa=[warto]
Jeeli nie podano wartoci, to zmiennej przypisywany jest lacuch
pusty. Wszystkie wartoci przechodz przez interpretacj tyld,
podstawianie parametrow, interpretacj zmiennych, podstawianie
wynikow polece, interpretacj wyrae arytmetycznych i usuwanie
cytowa (zobacz poniej INTERPRETACJA). Jeeli zmienna ma
ustawiony atrybut integer (calkowita), to warto podlega
interpretacjom wyrae arytmetycznych, nawet jeli nie uyto
interpretacji $((...)). Zobacz poniej Interpretacja wyrae
arytmetycznych. Nie jest wykonywane dzielenie na slowa, z
wyjtkiem "$@", jak wyjaniono to poniej w sekcji Parametry
specjalne. Nie jest wykonywane rozwijanie nazw plikow.
Instrukcje przypisania mog si te pojawia jako argumenty polece
wbudowanych declare, typeset, export, readonly i local.
Parametry pozycyjne
Parametr pozycyjny to parametr okrelany cyfr lub cyframi, innymi
ni pojedyncza cyfra 0. Parametrom pozycyjnym nadawane s wartoci
argumentow powloki (w czasie jej wywolania). Wartoci te mog by
ponownie nadawane przy pomocy wbudowanego polecenia set. Do
parametrow pozycyjnych nie mona wykona przypisania przy pomocy
instrukcji przypisania. Parametry pozycyjne s tymczasowo
zastpowane podczas wykonywania funkcji powloki (zobacz poniej
FUNKCJE). Jeeli interpretowany jest parametr pozycyjny okrelany
wicej ni jedn cyfr, to musi by ujty w nawiasy (zobacz poniej
INTERPRETACJA).
Parametry specjalne
Powloka kilka parametrow traktuje specjalnie. Do parametrow tych
mona si wylcznie odwolywa; nie jest dozwolone przypisywanie im
wartoci.
* Interpretowane jest jako parametry pozycyjne, poczwszy od
pierwszego. Gdy interpretacja pojawia si wewntrz
cudzyslowow, to parametr ten interpretowany jest jako
pojedyncze slowo z wartociami kadego z parametrow
rozdzielonymi pierwszym znakiem zmiennej specjalnej IFS.
To znaczy, "$*" jest rownowane "$1c$2c...", gdzie c jest
pierwszym znakiem wartoci zmiennej IFS. Jeeli IFS nie
jest ustawione, to parametry oddzielane s spacjami. Jeli
IFS jest lacuchem pustym, to parametry s ze sob polczone
bez rozdzielajcych je separatorow.
@ Interpretowane jako parametry pozycyjne, poczwszy od
pierwszego. Gdy interpretacja pojawia si wewntrz
cudzyslowow, to kady parametr interpretowany jest jako
odrbne slowo. To znaczy, "$@" jest rownowane "$1" "$2"
... Jeli nie ma adnych parametrow pozycyjnych, "$@" i $@
interpretowane s jako nic (tj. s usuwane).
# Interpretowane jako liczba parametrow pozycyjnych, podana
dziesitnie.
? Interpretowane jako kod zakoczenia ostatnio wykonanego
potoku pierwszoplanowego.
- Interpretowane jako biece flagi opcji, takie jakie
zostaly podane podczas wywolania, ustawione przy pomocy
wbudowanego polecenia set lub ustawione przez sam powlok
(tak jak opcja -i).
$ Interpretowany jest jako identyfikator procesu powloki. W
podpowloce (), interpretowany jest jako ID procesu biecej
powloki, nie za podpowloki.
! Interpretowany jako ID procesu ostatnio wykonywanego
polecenia tla (polecenia asynchronicznego).
0 Interpretowany jako nazwa powloki lub skryptu powloki.
Ustawiane jest to na etapie inicjowania powloki. Jeeli
bash wywolywany zostal z plikiem polece, to $0 ustawiane
jest na nazw tego pliku. Jeli bash zostal uruchomiony z
opcj -c, to $0 jest ustawiane na pierwszy argument po
lacuchu, jaki ma zosta wywolany, jeli taki wystpuje. W
przeciwnym wypadku, ustawiany jest na nazw pliku uyt do
wywolania bash, jak podaje argument zerowy.
_ Podczas uruchamiania powloki, ustawiany na bezwzgldn nazw
powloki lub wykonywanego skryptu powloki przekazanego w
licie argumentow. Nastpnie, interpretowany jest jako
ostatni argument poprzedniego polecenia, po
interpretacji. Ustawiany rownie na peln nazw pliku
kadego polecenia wykonanego i umieszczonego w rodowisku
eksportowanym do tego polecenia. Podczas sprawdzania
poczty parametr ten przechowuje nazw aktualnie
sprawdzanego pliku poczty.
Zmienne pow/loki
Powloka ustawia nastpujce zmienne:
BASH Interpretowane jako pelna nazwa pliku uyta do wywolania
tego przebiegu bash .
BASH_VERSINFO
Zmienna tablicowa tylko do odczytu, ktorej elementy
zawieraj informacje o wersji uruchomionego bash. Wartoci
przypisane elementom tablicy s nastpujce:
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] Warto MACHTYPE.
BASH_VERSION
Interpretowane jako lacuch opisujcy wersj uruchomionego
bash.
COMP_CWORD
Indeks w ${COMP_WORDS} slowa zawierajcego biec pozycj
kursora. Zmienna ta jest dostpna wylcznie w funkcjach
powloki wywolanych przez uslugi programowalnego
uzupelniania (zobacz poniej Programowalne uzupe/lnianie).
COMP_LINE
Biecy wiersz polece. Ta zmienna jest dostpna tylko w
funkcjach powloki i poleceniach zewntrznych wywolywanych
przez uslugi programowalnego uzupelniania (zobacz poniej
Programowalne uzupe/lnianie).
COMP_POINT
Indeks biecej pozycji kursora wzgldem pocztku biecego
polecenia. Jeeli kursor jest na kocu biecego polecenia,
to warto tej zmiennej jest rowna ${#COMP_LINE}. Ta
zmienna jest dostpna tylko w funkcjach powloki i
poleceniach zewntrznych wywolywanych przez uslugi
programowalnego uzupelniania (zobacz poniej Programowalne
uzupe/lnianie).
COMP_WORDS
Zmienna tablicowa (patrz Tablice poniej) skladajca si z
pojedynczych slow z aktualnego wiersza polece. Zmienna
ta jest dostpna wylcznie w funkcjach powloki wywolanych
przez uslugi programowalnego uzupelniania (zobacz poniej
Programowalne uzupe/lnianie).
DIRSTACK
Zmienna tablicowa (zobacz Tablice poniej) zawierajca biec
zawarto stosu katalogow. Katalogi pojawiaj si na stosie w
kolejnoci, w jakiej s wywietlane przez wbudowane dirs.
Przypisanie do elementow tej zmienej tablicowej moe
posluy do zmiany katalogow ju wystpujcych na stosie, ale
do dodania i usunicia katalogow musz by uyte wbudowane
pushd i popd. Przypisanie wartoci tej zmiennej nie
zmieni biecego katalogu. Jeli DIRSTACK jest uniewanione,
to traci swe specjalne wlaciwoci, nawet jeeli jest
nastpnie ponownie ustawione.
EUID Interpretowane jako efektywny identyfikator biecego
uytkownika, inicjowane przy uruchamianiu powloki. Zmienna
ta jest tylko do odczytu.
FUNCNAME
Nazwa aktualnie wykonywanej funkcji powloki. Zmienna ta
istnieje tylko podczas wykonywania funkcji powloki.
Proby przypisywania jej wartoci nie odnosz efektu i
zwracaj kod bldu. Jeeli FUNCNAME jest uniewanione, to
traci swe specjalne wlaciwoci, nawet jeeli jest nastpnie
ponownie ustawione.
GROUPS Zmienna tablicowa zawierajca list grup, ktorych czlonkiem
jest biecy uytkownik. Proby przypisywania jej wartoci nie
odnosz efektu i zwracaj kod bldu. Jeeli GROUPS jest
uniewanione, to traci swe specjalne wlaciwoci, nawet
jeeli jest nastpnie ponownie ustawione.
HISTCMD
Licznik historii (indeks na licie historii polece)
biecego polecenia. Jeeli HISTCMD jest uniewanione, to
traci swe specjalne wlaciwoci, nawet jeeli jest nastpnie
ponownie ustawione.
HOSTNAME
Automatycznie ustawiane na nazw aktualnego hosta.
HOSTTYPE
Automatycznie ustawiane na lacuch unikalnie opisujcy typ
maszyny, na ktorej jest wykonywany bash. Warto domylna
zaley od systemu.
LINENO Przy kadym odwolaniu do tego parametru powloka zastpuje
jego warto liczb dziesitn reprezentujc aktualny kolejny
numer wiersza (poczynajc od 1) skryptu lub funkcji. Nie
zapewnia si, by warto ta miala znaczenie poza skryptem bd
funkcj. Jeli LINENO jest uniewanione, to traci swe
specjalne wlaciwoci, nawet jeeli jest nastpnie ponownie
ustawione.
MACHTYPE
Automatycznie ustawiane na lacuch w pelni opisujcy typ
systemu, na ktorym jest wykonywany bash, w standardowym
formacie GNU cpu-firma-system. Warto domylna zaley od
systemu.
OLDPWD Poprzedni katalog roboczy ustawiony poleceniem cd.
OPTARG Warto ostatniego, bdcego opcj, argumentu przetworzonego
przez wbudowane polecenie getopts (zobacz poniej
WBUDOWANE POLECENIA POW/LOKI).
OPTIND Numer (indeks) nastpnego argumentu, jaki ma zosta
przetworzony przez wbudowane polecenie getopts (zobacz
poniej WBUDOWANE POLECENIA POW/LOKI).
OSTYPE Automatycznie ustawiane na lacuch opisujcy system
operacyjny, w ktorym jest wykonywany bash. Warto domylna
zaley od systemu.
PIPESTATUS
Zmienna tablicowa (zobacz Tablice poniej) zwierajca list
kodow zakoczenia z procesow w ostatnio wykonywanym potoku
pierwszoplanowym (ktory moe zawiera pojedyncze
polecenie).
PPID Identyfikator procesu macierzystego powloki. Zmienna ta
jest tylko do odczytu.
PWD Biecy katalog roboczy, ustawiony poleceniem cd.
RANDOM Za kadym razem, gdy nastpuje odwolanie do tego parametru,
generowana jest calkowita liczba losowa z zakresu od 0 do
32767. Sekwencj liczb losowych mona zainicjowa przypisujc
warto do RANDOM. Jeeli RANDOM jest uniewaniona, to traci
swe specjalne wlaciwoci, nawet jeeli jest nastpnie
ponownie ustawione.
REPLY Ustawiona na wiersz wejcia odczytany wbudowanym
poleceniem read jeli nie podano adnych jego argumentow.
SECONDS
Kadorazowo, gdy wystpuje odwolanie do tego parametru,
zwracana jest liczba sekund, jakie uplynly od wywolania
powloki. Jeeli do SECONDS zostanie przypisana warto, to
warto zwracana przez kolejne odwolania rowna liczbie
sekund od czasu przypisania plus przypisana warto. Jeeli
SECONDS jest uniewanione, to traci swe specjalne
wlaciwoci, nawet jeeli jest nastpnie ponownie ustawione.
SHELLOPTS
Lista, rozdzielonych dwukropkami, wlczonych opcji
powloki. Kade slowo listy jest poprawnym argumentem opcji
-o wbudowanego polecenia set (zobacz WBUDOWANE POLECENIA
POW/LOKI poniej). Opcje pojawiajce si w SHELLOPTS to te,
ktore s zglaszane jako wlczone (on) przez set -o. Jeli
zmienna ta istnieje w rodowisku podczas uruchamiania
bash, to kada z opcji powloki wystpujca na tej licie
zostanie wlczona przed odczytem jakichkolwiek plikow
startowych. Jest to zmienna tylko do odczytu.
SHLVL Inkrementowana kadorazowo, gdy uruchamiane jest kolejne
wystpienie bash.
UID Interpretowane jako identyfikator biecego uytkownika,
inicjowane przy uruchamianiu powloki. Zmienna ta jest
tylko do odczytu.
Ponisze zmienne s uywane przez powlok. W niektorych przypadkach
bash przypisuje im domylne wartoci; przypadki te s odnotowane
niej.
BASH_ENV
Jeeli parametr ten jest ustawiony podczas wykonywania
przez bash skryptu, to jego warto interpretowana jest
jako nazwa pliku zawierajcego polecenia do zainicjowania
powloki, jak w ~/.bashrc. Warto BASH_ENV podlega
interpretacji parametrow, podstawianiu wynikow polece i
interpretacjom wyrae arytmetycznych przed interpretacj
jej jako nazwy pliku. Zmienna PATH nie jest uywana do
znalezienia pliku o powstalej w ten sposob nazwie.
CDPATH cieka wyszukiwania dla polecenia cd. Jest to lista
rozdzielonych dwukropkami katalogow, w ktorych powloka
szuka katalogow docelowych podanych przez polecenie cd.
Przykladow wartoci jest ,,.:~:/usr''.
COLUMNS
Uywana przez polecenie wbudowane select do wyznaczenia
szerokoci terminala przy wypisywaniu list wyboru.
Ustawiana automatycznie po otrzymaniu SIGWINCH.
COMPREPLY
Zmienna tablicowa, z ktorej bash czyta moliwe
uzupelnienia tworzone przez funkcj powloki wywolan przez
uslug programowalnego uzupelniania (zobacz poniej
Programowalne uzupe/lnianie).
FCEDIT Domylny edytor dla wbudowanego polecenia fc.
FIGNORE
Lista rozdzielonych dwukropkami przyrostkow, jakie maj by
ignorowane podczas uzupelniania nazw plikow (zobacz
READLINE poniej). Nazwa pliku o przyrostku pasujcym do
jednej z pozycji FIGNORE wylczana jest z listy
dopasowanych nazw plikow. Przykladow wartoci jest
,,.o:~''.
GLOBIGNORE
Lista rozdzielonych dwukropkami wzorcow definiujcych
zestaw nazw plikow, jakie maj by ignorowane podczas
rozwijania nazw plikow. Jeeli plik pasujcy do wzorca
rozwijajcego nazw ciekow pasuje rownie do ktorego z
wzorcow w GLOBIGNORE, to jest on usuwany z listy
dopasowanych.
HISTCONTROL
Jeeli posiada warto ignorespace, to wiersze rozpoczynajce
si od znaku spacji nie s wprowadzane do listy historii.
Jeli posiada warto ignoredups, to wiersze pasujce do
ostatniego wiersza historii nie s wprowadzane. Warto
ignoreboth lczy obie te moliwoci. Jeli zmienna ta nie
jest zdefiniowana lub ma warto inn od powyszych, to
wszystkie wiersze przeczytane przez analizator skladni
zachowywane s w licie historii, stosownie do wartoci
HISTIGNORE. Funkcja tej zmiennej jest zastpiona przez
HISTIGNORE. Drugi i kolejne wiersze zloonego polecenia
wielowierszowego nie s sprawdzane i s dodawane do
historii bez wzgldu na warto
HISTFILE
Nazwa pliku, w ktorym zachowywana jest historia polece
(zobacz HISTORIA poniej). Wartoci domyln jest
~/.bash_history. Jeli ustawienie tej zmiennej zostanie
skasowane, to historia polece nie bdzie zachowana po
zakoczeniu pracy powloki interaktywnej.
HISTFILESIZE
Maksymalna liczba wierszy zawartych w pliku historii.
Podczas przypisywania wartoci tej zmiennej, jeeli jest to
niezbdne, plik historii jest obcinany tak, by nie
zawieral wicej wierszy. Domyln wartoci jest 500. Plik
historii jest take obcinany do tego rozmiaru po zapisaniu
go w czasie koczenia pracy przez powlok interaktywn.
HISTIGNORE
Lista rozdzielonych dwukropkami wzorcow slucych do
decydowania, jakie wiersze polece powinny by zachowane w
licie historii. Kady z wzorcow zakotwiczony jest na
pocztku wiersza i musi pasowa do calego wiersza (nie jest
dodawane adne niejawne `*'). Kady z wzorcow sprawdzany
jest z biecym wierszem po wykonaniu kontroli okrelonych
przez HISTCONTROL. Oprocz zwyklych znakow dopasowywania
wzorcow uywanych przez powlok, `&' dopasowuje poprzedni
wiersz historii. Literal `&' mona uzyska poprzedzajc go
odwrotnym ukonikiem; odwrotny ukonik jest usuwany przed
prob dopasowania. Druga i kolejne wiersze zloonego
polecenia wielowierszowego nie s sprawdzane i s dodawane
do historii bez wzgldu na warto HISTIGNORE.
HISTSIZE
Liczba polece do zapamitania w historii polece (zobacz
HISTORIA poniej). Wartoci domyln jest 500.
HOME Katalog domowy biecego uytkownika; domylny argument
wbudowanego polecenia cp. Warto tej zmiennej
wykorzystywana jest te przy wykonywaniu interpretacji
tyld.
HOSTFILE
Zawiera nazw pliku o tym samym formacie co /etc/hosts
ktory pownien by czytany, gdy powloka potrzebuje uzupelni
nazw hosta. List moliwych uzupelnie mona zmienia podczas
pracy powloki. Nastpnym razem, gdy wykonywana jest proba
uzupelnienia nazwy hosta bash dodaje zawarto nowego pliku
do ju istniejcej listy. Jeeli HOSTFILE jest ustawione,
ale nie posiada wartoci, bash usiluje uzyska list
moliwych uzupelnie nazw hostow czytajc /etc/hosts Gdy
HOSTFILE jest uniewaniane, lista hostow jest czyszczona.
IFS Wewntrzny Separator Pol (Internal Field Separator) uywany
do podzialu na slowa po interpretacjach i dzielenia
wierszy na slowa we wbudowanym poleceniu read. Jego
domyln wartoci jest ,,<spacja><tabulacja><nowalinia>''.
IGNOREEOF
Steruje dzialaniem powloki interaktywnej przy otrzymaniu
przez ni znaku EOF jako jedynego znaku wejcia. Jeeli jest
ustawiona, to jej warto jest liczb kolejnych znakow EOF
jakie musz by wpisane jako pierwsze znaki wiersza
wprowadzania przed zakoczeniem pracy przez bash. Jeli
zmienna ta istnieje, ale nie zawiera wartoci numerycznej
lub nie ma wartoci, to wartoci domyln jest 10. Jeeli nie
istnieje, to EOF wskazuje powloce koniec wprowadzanych
danych.
INPUTRC
nazwa pliku startowego dla readline, uniewaniajca domyln
~/.inputrc (zobacz READLINE poniej).
LANG Sluy do wyznaczania kategorii locale dla wszystkich
kategorii nie wyszczegolnionych przez zmienne
rozpoczynajce si od znakow LC_.
LC_ALL Zmienna ta uniewania warto LANG i wszelkich innych
zmiennych LC_ okrelajcych kategorie locale.
LC_COLLATE
Ta zmienna wyznacza kolejno (collation order) uywan przy
sortowaniu wynikow rozwijania nazw plikow, decyduje te o
zachowaniu wielu wyrae, klas rownowanych i sekwencje
sortowania (collating sequences) w rozwijaniu nazw plikow
i dopasowywaniu wzorcow.
LC_CTYPE
Ta zmienna decyduje o interpretacji znakow i zachowaniu
si klas znakow wewntrz rozwijania nazw plikow i
dopasowywania wzorcow.
LC_MESSAGES
Ta zmienna decyduje o ustawieniu locale uywanym do
tlumaczenia ujtych w cudzyslowy lacuchow poprzedzonych
znakiem $.
LC_NUMERIC
Ta zmienna okrela kategori locale uywan do formatowania
liczb.
LINES Uywana przez polecenie wbudowane select do wyznaczenia
dlugoci kolumn przy wypisywaniu list wyboru. Ustawiana
automatycznie po otrzymaniu SIGWINCH.
MAIL Jeeli parametrowi temu jest przypisana nazwa pliku, a nie
jest ustawiona zmienna MAILPATH, to bash informuje
uytkownika o nadejciu poczty do podanego pliku.
MAILCHECK
Okrela jak czsto (w sekundach) bash sprawdza poczt.
Domylnie jest to 60 sekund. Gdy nadchodzi pora
sprawdzenia poczty, powloka wykonuje to przed
wywietleniem glownej zachty. Jeli zmienna ta nie jest
ustawiona, to powloka wylcza sprawdzanie poczty.
MAILPATH
Lista rozdzielonych dwukropkami nazw plikow, w jakich ma
by sprawdzana poczta. Mona poda komunikat, jaki ma zosta
wywietlony, gdy do danego pliku przybdzie wiadomo
pocztowa, przez oddzielenie nazwy pliku od komunikatu
znakiem '?'. Uyte w tekcie komunikatu, $_ interpretowane
jest jako nazwa biecego pliku pocztowego. Przyklad:
MAILPATH='/var/mail/bfox?"You have mail":~/shell-mail?"$_
has mail!"'
Bash zapewnia tej zmiennej warto domyln, ale poloenie
plikow pocztowych uytkownika, jakim si posluguje zaley od
systemu (np. /var/mail/$USER).
OPTERR Jeeli ustawiono na warto 1, bash wywietla komunikaty o
bldach generowanych przez wbudowane polecenie getopts
(zobacz WBUDOWANE POLECENIA POW/LOKI poniej). OPTERR
inicjowane jest na 1 kadorazowo, gdy wywolywana jest
powloka lub wykonywany jest skrypt powloki.
PATH cieka wyszukiwania polece. Jest to lista rozdzielanych
dwukropkami katalogow, w ktorych powloka szuka polece
(zobacz WYKONYWANIE POLECE poniej). Domylna cieka zaley
od systemu i ustawiana jest przez administratora
instalujcego bash. Powszechn wartoci jest
,,/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin:.''.
POSIXLY_CORRECT
Jeli podczas uruchamiania bash w rodowisku istnieje ta
zmienna, to powloka przed odczytem plikow startowych
wchodzi w tryb posix, tak jakby przy jej wywolaniu podano
opcj --posix. Jeli zmienna ta zostanie ustawiona podczas
pracy powloki, to bash wlcza tryb posix, tak jakby
zostalo wykonane polecenie set -o posix.
PROMPT_COMMAND
Jeeli jest ustawiona, to jej warto jest wykonywana jwko
polecenie przed kadym wyslaniem zachty glownej.
PS1 Warto tego parametru jest interpretowana (zobacz poniej
ZACHTA) i uywana jako glowny lacuch zachty. Jego wartoci
domyln jest ,,\s-\v\$ ''.
PS2 Warto tego parametru jest interpretowana jak PS1 i uywana
jako wtorny (secondary) lacuch zachty. Domylnie jest to
,,> ''.
PS3 Warto tego parametru sluy jako zachta w poleceniu select
(zobacz powyej GRAMATYKA POW/LOKI).
PS4 Warto tego parametru interpretowana jest jak PS1 i
wypisywana przed kadym poleceniem wywietlanym przez bash
podczas ledzenia wykonywania. Pierwszy znak PS4, w razie
potrzeby, powtarzany jest wielokrotnie, by wskaza wiele
pozionow zagniedenia. Domylnie jest to ,,+ ''.
TIMEFORMAT
Warto tego parametru sluy jako lacuch formatu
okrelajcego, jak powinna by wywietlana informacja o
czasach dla potokow poprzedzonych slowem zastrzeonym
time. Znak % rozpoczyna sekwencj specjaln, ktora jest
interpretowana jako warto czasu lub inna informacja.
Sekwencje specjalne i ich znaczenie s nastpujce; nawiasy
kwadratowe opisuj czci opcjonalne.
%% Literal %.
%[p][l]R Czas, jaki uplynl, w sekundach.
%[p][l]U Liczba sekund, jakie CPU zuyl w trybie
uytkownika.
%[p][l]S Liczba sekund, jakie CPU zuyl w trybie
systemowym.
%P Procent wykorzystania CPU, liczony jako (%U +
%S) / %R.
Opcjonalne p jest cyfr okrelajc dok/ladno (precision),
liczb cyfr ulamkowych po kropce dziesitnej. Warto zero
powoduje, e nie bdzie wywietlana ani kropka dziesitna ani
cz ulamkowa. Mog by podane co najwyej trzy miejsca po
kropce dziesitnej; wartoci p wiksze od 3 zmieniane s na
3. Jeeli nie podano p, to uywana jest warto 3.
Opcjonalne Bl okrela dluszy (longer) format wynikow,
zawierajcy minuty, w postaci MMmSS.FFs. O tym, czy
wystpuje ulamkowa cz sekund decyduje warto p.
Jeeli zmienna ta nie jest ustawiona, to bash dziala tak,
jakby miala ona warto
$'\nreal\t%3lR\nuser\t%3lU\nsys%3lS'. Jeeli jej wartoci
jest pusty lacuch, to nie jest wywietlana adna informacja
o czasach (timing). Podczas wywietlania lacucha formatu
dodawany jest koczcy znak nowej linii.
TMOUT Jeli ustawione na warto wiksz od zera, to warto ta jest
interpretowana jako liczba sekund okrelajc czas, przez
jaki powloka ma czeka na wprowadzenie danych po
wywietleniu zachty. Bash koczy prac po odczekaniu tego
czasu jeli dane nie pojawily si.
auto_resume
Zmienna ta steruje sposobem interakcji powloki z
uytkownikiem i sposobem kontroli zada. Jeeli jest
ustawiona, to jednowyrazowe polecenia proste bez
przekierowa traktowane s jako aspirujce do wznowienia
istniejcego zatrzymanego zadania. Nie pozwala si na adn
dwuznaczno; jeli jest wicej ni jedno zadanie
rozpoczynajce si od wpisanego lacucha, wybierane jest
zadanie, do ktorego ostatnio sigano. Nazwa zatrzymanego
zadania, w tym kontekcie, jest wierszem polece uytym do
jego uruchomienia. Jeli posiada warto exact, to podany
lacuch musi pasowa dokladnie do nazwy zatrzymanego
zadania; Jeli jest ustawione na substring, to podany
lacuch powinien pasowa do podlacucha nazwy zatrzymanego
zadania. Warto substring zapewnia funkcjonalno
analogiczn do identyfikatora zadania %? (zobacz
STEROWANIE ZADANIAMI poniej). Jeli ustawiono inn warto,
to podany lacuch musi by przedrostkiem nazwy zatrzymanego
zadania; zapewnia to funkcjonalno analogiczn do
identyfikatora zadania %.
histchars
Dwa lub trzy znaki sterujce interpretacj historii i
podzialem na leksemy (zobacz poniej INTERPRETACJA
HISTORII). Pierwszy znak jest znakiem
interpretacjihistorii, sygnalizujcym pocztek
interpretacji historii, zwykle `!'. Drugi znak jest
znakiem szybkiego podstawiania , ("quick substitution"),
slucym jako skrot do powtornego uruchamiania poprzednio
wprowadzonego polecenia, podstawiajcym w poleceniu jeden
lacuch za inny. Domylnym znakiem szybkiego podstawiania
jest `^'. Opcjonalny, trzeci znak jest znakiem
wskazujcym, e pozostala cz wiersza, w ktorym wystpuje on
jako pierwszy znak slowa, jest komentarzem. Zwykle
znakiem tym jest `#'. Znak komentarza historii powoduje,
e dla pozostalych slow wiersza podstawianie historii jest
pomijane. Niekoniecznie powoduje to traktowanie reszty
wiersza jako komentarza przez analizator skladni powloki.
Tablice
Bash udostpnia zmienne tablicowe jednowymiarowe. Jako tablica
moe zosta uyta dowolna zmienna; wbudowane declare jawnie
explicitly zadeklaruje tablic. Nie ma maksymalnego rozmiaru
tablic, ani wymagania, by wszystkie jej elementy byly
indeksowane czy przypisywane w sposob cigly. Tablice indeksowane
s przy pomocy liczb calkowitych, poczwszy od zera.
tablica tworzona jest automatycznie jeli wykonywane jest
przypisanie do jakiej zmiennej przy pomocy skladni
nazwa[wskanik]=warto. Wskanik tablicy traktowany jest jako
wyraenie arytmetyczne, ktore musi po interpretacji da liczb
wiksz bd rown zero. Chcc jawnie zadeklarowa tablic, uyj declare
-a nazwa (zobacz WBUDOWANE POLECENIA POW/LOKI poniej). declare
-a nazwa[wskanik] jest rownie akceptowane; wskanik jest wowczas
ignorowany. Dla zmiennej tablicowej mona poda atrybuty przy
pomocy wbudowanych declare i readonly. Kady z atrybutow
stosowany jest do wszystkich elementow tablicy.
Przypisania do tablic wykonywane s przy pomocy przypisa zloonych
postaci nazwa=(warto1 ... warton), gdzie kada warto ma posta
[wskanik]=/lacuch. Wymagany jest wylcznie /lacuch. Jeeli podano
opcjonalne nawiasy i wskanik, to warto jest przypisywana
wskazanemu elementowi tablicy; w przeciwnym wypadku warto
przypisywana jest elementowi o indeksie o jeden wikszym od
ostatniego elementu z przypisan wartoci. Indeksy ropoczynaj si
od zera. Skladnia ta jest akceptowana take przez wbudowane
declare. Przypisania do pojedynczych elementow tablicy mona
wykonywa przy pomocy skladni nazwa[wskanik]=warto wprowadzonej
powyej.
Do elementu tablicy mona odwolywac si uywajc ${nazwa[wskanik]}.
Nawiasy s wymagane, by unikn konfliktow z rozwijaniem nazw
plikow. Jeli wskanikiem jest @ lub *, to powysze slowo
interpretowane jest jako wszystkie elementy nazwy. Wskaniki te
roni si tylko wtedy, gdy slowo pojawia si w cudzyslowach. Jeli
slowo ujto w cudzyslowy, to ${nazwa[*]} interpretowane jest jako
pojedyncze slowo o wartoci wszystkich elementow tablicy
rozdzielonych pierwszym znakiem zmiennej specjalnej IFS, za
${nazwa[@]} interpretuje kady z elementow nazwa jako odrbne
slowo. Jeli brak jest elementow tablicy, to ${nazwa[@]}
interpretowane jest jako nic. Jest to zachowanie analogiczne do
interpretacji parametrow specjalnych * i @ (zobacz powyej
Parametry specjalne). ${#nazwa[wskanik]} interpretowane jest
jako dlugo ${nazwa[wskanik]}. Jeli wskanikiem jest * lub @, to
interpretacj jest liczba elementow w tablicy. Odwolywania si do
zmiennej tablicowej bez podania wskanika jest rownowane
odwolaniu do elementu numer zero.
Do niszczenia tablic sluy wbudowane polecenie unset. unset
nazwa[wskanik] niszczy element tablicy o indeksie wskanik.
unset nazwa, gdzie nazwa jest tablic, lub unset nazwa[wskanik],
gdzie wskanikiem jest * lub @, usuwa cal tablic.
Kade z wbudowanych declare, local i readonly akceptuje opcj -a
do okrelania tablic. Wbudowane read akceptuje opcj -a do
przypisywania tablicy listy slow przeczytanych ze standardowego
wejcia. set i declare wywietlaj wartoci tablicowe w sposob
umoliwiajcy ponowne ich uycie w przypisaniach.
INTERPRETACJA
Interpretacja wykonywana jest na wierszu polece po jego podziale
na slowa. Istnieje siedem rodzajow wykonywanych interpretacji:
interpretacja nawias'ow (brace expansion), interpretacja tyld
(tilde expansion), podstawianie parametr'ow i interpretacja
zmiennych (parameter and variable expansion), podstawienie
wynik'ow polece (command substitution), interpretacja wyrae
arytmetycznych (arithmetic expansion), podzia/l na s/lowa (word
splitting) i rozwinicie nazw plik'ow (pathname expansion).
Kolejno interpretacji: interpretacja nawiasow, interpretacja
tyld, podstawianie parametrow, interpretacja zmiennych i wyrae
arytmetycznych i podstawianie wynikow polece (wykonywane od
lewej do prawej), podzial na slowa i rozwijanie nazw ciekowych.
Na systemach potraficych to obsluy, istnieje dodatkowa dostpna
interpretacja: podstawienie wynik'ow proces'ow (process
substitution).
Tylko interpretacja nawiasow, dzielenie na slowa i rozwinicie
nazw plikow mog zmieni liczb slow interpretowanego wyraenia;
pozostale interpretacje rozwijaj pojedyncze slowo w pojedyncze
slowo. Jedynymi wyjtkami s interpretacje "$@" i "${nazwa[@]}"
wyjanione powyej (zobacz PARAMETRY).
Interpretacja nawias'ow
Interpretacja nawias'ow jest mechanizmem, przez ktory mog by
generowane dowolne lacuchy. Mechanizm ten przypomina rozwinicia
nazw plik'ow, ale generowane nazwy plikow nie musz okrela plikow
istniejcych. Wzorce, majce podlega interpretacji nawiasow maj
posta opcjonalnej preambu/ly, po ktorej wystpuj serie
separowanych przecinkami lacuchow pomidzy par nawiasow
klamrowych, po ktorych nastpuje opcjonalny dopisek(postscript).
Preambula stanowi przedrostek dla kadego z lacuchow zawartych w
nawiasach, a dopisek dodawany jest do kadego lacucha wynikowego,
przy interpretacji od lewej do prawej.
Interpretacja nawiasow moe by zagniedana. Wyniki kadego
zinterpretowanego lacucha nie s sortowane; zachowywana jest
kolejno od lewej do prawej. Na przyklad, a{d,c,b}e
interpretowane jest jako `ade ace abe'.
Interpretacja nawiasow wykonywana jest przed innymi rodzajami
interpretacji, a znaki o specjalnym znaczeniu dla innych
interpretacji s zachowywane w wyniku. Jest cile tekstowa. Bash
nie stosuje adnej interpretacji skladniowej do kontekstu
interpretacji czy tekstu pomidzy nawiasami.
Poprawnie zbudowana interpretacja nawiasow musi zawiera
niecytowany nawias otwierajcy i zamykajcy i co najmniej jeden
niecytowany przecinek. Wszelkie niepoprawnie skonstruowane
interpretacje nawiasow s pozostawiane bez zmian. { lub , mona
cytowa przy pomocy odwrotnego ukonika, co chroni je przed
przyjmowaniem za cz wyraenia nawiasowego. Dla uniknicia
konfliktu z interpretacj parametrow, lacuch ${ nie jest
traktowany jako spelniajcy warunki interpretacji nawiasow.
Typowym zastosowaniem tej konstrukcji jest skrot, wtedy gdy
wspolny przedrostek lacuchow do utworzenia jest dluszy ni w
powyej 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 niewielk niezgodno z
historycznymi wersjami sh. sh nie traktuje nawiasow
otwierajcych i zamykajcych w specjalny sposob gdy pojawiaj si
one jako cz slowa, i zachowuje je w wyniku. W bash konsekwencj
interpretacji nawiasow jest usuwanie nawiasow ze slow. Na
przyklad, slowo wprowadzone do sh jako plik{1,2} pojawi si w
identycznej postaci na wyjciu. To samo slowo po interpretacji
przez bash daje plik1 plik2. Jeeli podana jest cisla zgodno z
sh, uruchom bash z opcj +B lub wylcz interpretacj nawiasow przy
pomocy opcji +B polecenia set (zobacz WBUDOWANE POLECENIA
POW/LOKI poniej).
Interpretacja tyldy
Jeeli slowo rozpoczyna si niecytowanym znakiem tyldy (`~'), to
wszystkie znaki poprzedzajce pierwszy niecytowany ukonik (lub
wszystkie znaki, gdy nie ma ukonika) uwaane s za przedrostek
tyldy (tilde-prefix). Jeeli aden ze znakow w przedrostku tyldy
nie jest cytowany, to jego znaki nastpujce po znaku tyldy
traktowane s jako moliwa nazwa logowania (login name). Jeli ta
nazwa logowania jest lacuchem pustym, to tylda zastpowana jest
wartoci parametru powloki HOME. Jeeli HOME nie jest ustawione,
to podstawiany jest za nie katalog domowy uytkownika
uruchamiajcego powlok. W przeciwnym wypadku, przedrostek tyldy
zastpowany jest katalogiem domowym skojarzonym z okrelon nazw
logowania.
Jeli przedrostkiem tyldy jest `~+', to jest on zastpowany
wartoci zmiennej PWDpowloki. Jeli przedrostkiem tyldy jest
`~-', to jest on zastpowany wartoci zmiennej powloki OLDPWD,
jeli jest ona ustawiona. Jeeli wystpujce w przedrostku po
tyldzie znaki skladaj si z liczby N, opcjonalnie poprzedzonej
przez `+' lub `-', to przedrostek tyldy zastpowany jest
odpowiednim elementem stosu katalogow, jaki zostalby wywietlony
przez wbudowane dirs, wywolane z przedrostkiem tyldy jako
argumentem. Jeeli w przedrostku tyldy znaki wystpujce po
tyldzie skladaj si z liczby bez pocztkowego `+' lub `-', to
przyjmowane jest `+'.
Jeli nazwa logowania jest nieprawidlowa lub interpretacja tyldy
nie powiodla si, to slowo z tyld pozostaje niezmienione.
Kade z przypisa do zmiennej sprawdzane jest na obecno
niecytowanych przedrostkow tyldy wystpujcych bezporednio po :
lub =. W tych przypadkach rownie jest wykonywana jest
interpretacja tyldy. Na skutek tego, mona poslugiwa si nazwami
plikow z tyldami w przypisaniach do PATH, MAILPATH i CDPATH, a
powloka przypisze zinterpretowan warto.
Podstawianie parametr'ow
Znak `$' wprowadza podstawianie parametrow, podstawianie wynikow
polece i interpretacj wyrae arytmetycznych. Podlegajca
interpretacji nazwa parametru lub symbol mog by ujte w nawiasy
klamrowe, ktore s opcjonalne, ale slu do ochrony interpretowanej
zmiennej przed znakami, jakie wystpuj bezporednio po niej, a
ktore moglyby zosta zinterpretowane jako cz nazwy.
Gdy uywane s nawiasy, pasujcym nawiasem koczcym jest pierwszy
`}', nie chroniony przez odwrotny ukonik, nie znajdujcy si
wewntrz cytowanego lacucha ani osadzony w wyraeniu
arytmetycznym, podstawieniu wyniku polecenia czy podstawieniu
parametru.
${parametr}
Podstawiana jest warto parametru. Nawiasy wymagane s gdy
parametr jest parametrem pozycyjnym o wicej ni jednej
cyfrze, lub gdy po parametrze wystpuje znak, ktory nie
powinien by interpretowany jako cz jego nazwy.
Jeeli pierwszym znakiem parametru jest wykrzyknik, to rozpoczyna
on poziom zagniedenia zmiennej poredniej. Bash posluguje si
wartoci zmiennej utworzonej z reszty parametru jako nazw
zmiennej; zmienna ta jest nastpnie interpretowana a w dalszym
podstawianiu uywana jest otrzymana warto zamiast wartoci samego
parametru. Znane jest to jako interpretacja porednia (indirect
expansion). Wyjtkiem jest tu interpretacja ${!przedrostka*}
opisana poniej.
W kadym z poniszych przypadkow, s/lowo podlega interpretacji
tyldy, podstawianiu parametrow, podstawianiu wynikow polece i
interpretacji wyrae arytmetycznych. Gdy nie przeprowadza
interpretacji podlacuchow, bash sprawdza czy parametr nie jest
pusty lub nieustawiony;
${parametr:-s/lowo}
Uywa wartoci domylnych. Jeeli parametr jest nieustawiony
lub pusty, to podstawiane jest zinterpretowane s/lowo. W
przeciwnym razie, podstawiana jest warto parametru.
${parametr:=s/lowo}
Przypisuje wartoci domylne. Jeeli parametr jest
nieustawiony lub pusty, to jest mu przypisywane
zinterpretowane s/lowo. Nastpnie podstawiana jest warto
parametru. Nie mona w ten sposob przypisywa wartoci
parametrom pozycyjnym ani parametrom specjalnym.
${parametr:?s/lowo}
Wywietla b/ld jeli pusty lub nieustawiony. Jeeli parametr
jest nieustawiony lub pusty, to na standardowe wyjcie
bldow zapisywane jest zinterpretowane s/lowo (lub
komunikat o takim wyniku, jeli brak s/lowa). Jeli powloka
nie jest interaktywna, to koczy prac. W przeciwnym
wypadku, podstawiana jest warto parametru.
${parametr:+s/lowo}
Uywa wartoci alternatywnej. Jeeli parametr jest
nieustawiony lub pusty, to nic nie jest podstawiane, w
przeciwnym razie podstawiane jest zinterpretowane s/lowo.
${parametr:offset}
${parametr:offset:d/lugo}
Interpretacja pod/lacuch'ow. Interpretuje co najwyej d/lugo
znakow parametru poczynajc od znakow okrelonych przez
offset. Jeli pominito d/lugo, to interpretuje podlacuch
parametru poczynajc od znaku okrelonego przez offset.
d/lugo i offset s wyraeniami arytmetycznymi (zobacz
OBLICZANIE WYRAE ARYTMETYCZNYCH poniej). d/lugo musi dawa
w wyniku liczb wiksz bd rown zero. Jeeli offset daje w
wyniku liczb mniejsz od zera, to uzyskana warto uywana
jest jako offset liczony od koca wartoci parametru.
Jeeli parametrem jest @, to wynikiem jest d/lugo
parametrow pozycyjnych, poczwszy od offset. Jeeli
parametr jest nazw tablicy indeksowanej przez @ lub *, to
wynikiem jest d/lugo czlonkow tablicy poczwszy od
${parametr[offset]}. Indeksowanie podlacucha rozpoczyna
si od zera, chyba e uywane s parametry pozycyjne, wowczas
indeksowanie zaczyna si od 1.
${!przedrostek*}
rozwija si w list nazw tych zmiennych, ktorych nazwy
rozpoczynaj si od przedrostka, rozdzielonych od siebie
pierwszym znakiem zmiennej specjalnej IFS.
${#parametr}
Podstawiana jest dlugo, w znakach, wartoci parametru.
Jeeli parametrem jest * lub @, warto podstawiana jest
liczb parametrow pozycyjnych. Jeeli parametr jest nazw
tablicy o indeksowanej przez * lub @, warto podstawiana
jest liczb elementow tablicy.
${parametr#s/lowo}
${parametr##s/lowo}
s/lowo jest interpretowane tworzc wzorzec, tak samo jak
przy rozwijaniu nazw plikow. Jeeli wzorzec pasuje do
pocztku wartoci parametru, to wynikiem interpretacji jest
zinterpretowana warto parametru z usunitym najkrotszym
(przypadek ,,#'') lub najdluszym (przypadek ,,##'')
pasujcym wzorcem. Jeeli parametrem jest @ lub *, to
operacja usunicia wzorca stosowana jest do kadego po
kolei parametru pozycyjnego, za wynikiem interpretacji
jest powstala lista. Jeli parametr jest zmienn tablicow
indeksowan przez @ lub *, operacja usuwania wzorca jest
przeprowadzana po kolei na kadym elemencie tablicy, za
wynikiem interpretacji jest powstala lista.
${parametr%s/lowo}
${parametr%%s/lowo}
s/lowo jest interpretowane tworzc wzorzec, tak samo jak
przy rozwijaniu nazw plikow. Jeeli wzorzec pasuje do
kocowej czci zinterpretowanego parametru, wynikiem
interpretacji jest zinterpretowana warto parametru z
usunitym najkrotszym (przypadek ,,%'') lub najdluszym
(przypadek ,,%%'') pasujcym wzorcem. Jeeli parametrem
jest @ lub *, to operacja usunicia wzorca stosowana jest
do kadego po kolei parametru pozycyjnego, za wynikiem
interpretacji jest powstala lista. Jeli parametr jest
zmienn tablicow indeksowan przez @ lub *, operacja
usuwania wzorca jest przeprowadzana po kolei na kadym
elemencie tablicy, za wynikiem interpretacji jest
powstala lista.
${parametr/wzorzec//lacuch}
${parametr//wzorzec//lacuch}
wzorzec jest interpretowany tworzc wzorzec, tak samo jak
przy rozwijaniu nazw plikow. Interpretowany jest
parametr, a najdlusze dopasowanie wzorca do jego
zinterpretowanej wartoci zastpowane jest /lacuchem. W
pierwszej postaci, zastpowane jest tylko pierwsze
dopasowanie. Druga posta powoduje zastpienie wszystkich
dopasowa wzorca /lacuchem. Jeeli wzorzec rozpoczyna si od
#, to musi pasowa do pocztku zinterpretowanej wartoci
parametru. Jeeli pattern rozpoczyna si od %, to musi
pasowa do koca zinterpretowanej wartoci parametru. Jeli
/lacuch jest pusty, to dopasowania wzorca s usuwane a /
wystpujce po wzorcu mona pomin. Jeeli parametrem jest @
lub *, to operacja podstawiania stosowana jest do kadego
po kolei parametru pozycyjnego, za wynikiem interpretacji
jest powstala lista. Jeli parametr jest zmienn tablicow
indeksowan przez @ lub *, operacja podstawiania jest
przeprowadzana po kolei na kadym elemencie tablicy, za
wynikiem interpretacji jest powstala lista.
Podstawianie wynik'ow polece
Podstawianie wynik'ow polece (command substitution) pozwala na
zastpowanie nazwy polecenia wyjciem (wynikiem) z jego dzialania.
Posiada dwie postaci:
$(polecenie)
lub
`polecenie`
Bash wykonuje interpretacj wykonujc polecenie i zastpujc
podstawiane polecenie jego utworzonym standardowym wyjciem, z
usunitymi kocowymi znakami nowej linii. Zawarte wewntrz wyniku
znaki nowej linii nie s usuwane, ale nog by usunite podczas
podzialu na slowa. Podstawienie wyniku polecenia $(cat plik)
mona zastpi rownowanym, ale szybszym $(< plik).
Gdy uywane jest podstawianie w starym stylu, z uyciem odwrotnych
apostrofow, odwrotny ukonik zachowuje swe znaczenie doslowne, z
wyjtkiem przypadkow, gdy poprzedza on $, ` lub \. Pierwszy
odwrotny apostrof (`) nie poprzedzony odwrotnym ukonikiem koczy
podstawianie wyniku polecenia. Podczas poslugiwania si postaci
$(polecenie), polecenie tworz wszystkie znaki pomidzy nawiasami;
aden nie jest traktowany specjalnie.
Podstawianie wynikow polece moe by zagniedane. W celu
zagniedenia postaci z odwrotnymi apostrofami zabezpiecz
wewntrzne przed interpretacj uywajc odwrotnych ukonikow.
Jeeli podstawianie pojawia si wewntrz cudzyslowow, to na
wynikach nie jest przeprowadzany podzial na slowa ani rozwinicie
nazw plikow.
Interpretacja wyrae arytmetycznych
Interpretacja wyrae arytmetycznych pozwala na obliczanie wyrae
arytmetycznych i podstawianie wyniku. Format interpretacji
arytmetycznej:
$((wyraenie))
wyraenie traktowane jest tak, jakby bylo ujte w cudzyslowy, ale
cudzyslow wewntrz nawiasow nie jest traktowany specjalnie.
Wszystkie tokeny w wyraeniu podlegaj interpretacji parametrow,
interpretacji lacuchow, podstawianiu wynikow polece i usuwaniu
cudzyslowow.
Interpretacja przeprowadzana jest zgodnie z zasadami podanymi
poniej w sekcji OBLICZENIA ARYTMETYCZNE. Jeeli wyraenie jest
nieprawidlowe, bash wypisuje komunikat o niepowodzeniu i nie
wystpuje adne podstawienie.
Podstawianie wynik'ow proces'ow (Process substitution)
Podstawianie wynik'ow proces'ow obslugiwane jest na systemach
obslugujcych potoki nazwane (FIFO) lub metod /dev/fd nazywania
otwartych plikow. Przybiera ono posta <(lista) lub >(lista).
Proces lista uruchamiany jest z wejciem i wyjciem podlczonym do
FIFO lub jakiego pliku w /dev/fd. W wyniku interpretacji nazwa
tego pliku przesylana jest jako argument biecego polecenia.
Jeeli posluono si postaci >(lista), zapis do pliku bdzie stanowi
wejcie dla listy. Jeeli posluono si postaci <(lista), plik
przekazany jako argument powinien zosta odczytany w celu
uzyskania wyjcia listy.
Gdy jest to moliwe, podstawianie wynikow procesu wykonywane jest
rownoczenie z interpretacj parametrow i zmiennych, podstawianiem
wynikow polece i interpretacj wyrae arytmetycznych.
Podzia/l na s/lowa
Powloka przeszukuje wyniki interpretacji parametrow,
podstawiania polece i interpretacji wyrae arytmetycznych, ktore
nie pojawiaj si wewntrz cudzyslowow, w celu przeprowadzenia
podzia/lu na s/lowa.
Powloka traktuje kady znak IFS jak separator i w miejscu ich
wystpowania dzieli na slowa wyniki innych interpretacji. Jeeli
IFS nie jest ustawione lub jego wartoci jest dokladnie
<spacja><tab><nowalinia>, warto domylna, to do podzialu na slowa
sluy dowolna sekwencja znakow IFS. Jeeli IFS posiada warto inn
ni domylna, to sekwencje bialych znakow spacji i tabulacji s
ignorowane na pocztku i kocu slowa, dopoki bialy znak wystpuje w
wartoci IFS (bialy znak IFS). Inne znaki w IFS nie bdce bialymi
znakami IFS, lcznie z dowolnymi przyleglymi bialymi znakami IFS,
ograniczaj pole. Sekwencja bialych znakow IFS jest rownie
traktowana jako ogranicznik. Jeli IFS jest lacuchem pustym, to
nie wystpuje podzial na slowa.
Jawnie puste argumenty ("" lub '') s pozostawiane. Niecytowane
argumenty puste niejawnie, wynikajce z interpretacji parametrow
nie posiadajcych wartoci, s usuwane. Jeli parametr bez wartoci
interpretowany jest wewntrz cudzyslowow, to wynikiem jest
argument pusty i jest on zachowywany.
Zauwa, e jeli nie wystpuje interpretacja, to nie jest rownie
wykonywany podzial.
Rozwijanie nazw plik'ow (Pathname Expansion)
Po podziale na slowa, jeeli nie ustawiona zostala opcja -f,
przeglda kade slowo w poszukiwaniu znakow *, ? i [. Jeli
pojawia si jeden z nich, to slowo uwaane jest za wzorzec i
zastpowane jest posortowan alfabetycznie list nazw plikow
pasujcych do wzorca. Jeeli nie znaleziono pasujcych nazw a
wylczona jest opcja nullglob powloki, slowo pozostawiane jest
bez zmian. Jeeli nullglob jest wlczone, a nie znaleziono
dopasowa, to slowo jest usuwane. Jeeli wlczona jest opcja
nocaseglob powloki, to dopasowywanie wzorca wykonywane jest bez
zwracania uwagi na wielko liter. Gdy do rozwinicia nazw plikow
uywa si wzorca, to znak ,,.'' na pocztku nazwy lub bezporednio
po ukoniku musi zosta dopasowany doslownie, chyba e ustawiono
opcj dotglob powloki. Podczas dopasowywania nazwy pliku znak
ukonika musi zawsze zosta dopasowany doslownie. W pozostalych
przypadkach, kropka ,,.'' nie jest traktowana specjalnie.
Zobacz poniej opis shopt w sekcji WBUDOWANE POLECENIA POW/LOKI,
gdzie znajdziesz omowienie opcji powloki nocaseglob, nullglob i
dotglob.
Do ograniczenia zestawu nazw plikow pasujcych do wzorca mona
wykorzysta zmienn powloki GLOBIGNORE. Jeeli GLOBIGNORE jest
ustawione, kada z pasujcych nazw plikow pasujca rownie do
jednego ze wzorcow w GLOBIGNORE jest usuwana z listy dopasowa.
Nazwy plikow ,,.'' i ,,..'' s zawsze ignorowane, nawet gdy
GLOBIGNORE jest ustawione. Jednake, ustawienie GLOBIGNORE
skutkuje wlczeniem opcji dotglob, tak e bd dopasowywane
wszystkie inne nazwy plikow rozpoczynajce si od kropki. W celu
uzyskania starego zachowania, ignorujcego nazwy zaczynajce si
,,.'', jednym ze wzorcow w GLOBIGNORE naley zrobi ,,.*'' .
Opcja dotglob jest wylczana, gdy kasowane jest GLOBIGNORE .
Dopasowanie wzorca
Kady znak pojawiajcy si we wzorcu, ronych od specjalnych znakow
wzorca opisanych poniej, dopasowuje sam siebie. Znak NUL nie moe
wystpi we wzorcu. Specjalne znaki wzorca musz by cytowane, jeeli
maj by dopasowane doslownie.
Specjalne znaki wzorca maj nastpujce znaczenie:
* Dopasowuje dowolny lacuch, lcznie z lacuchem pustym.
? Dopasowuje dowolny pojedynczy znak.
[...] Dopasowuje jeden z ujtych w nawiasy kwadratowe znakow.
Para znakow rozdzielona mylnikiem opisuje wyraenie
zakresu; dopasowywany jest nim dowolny znak, ktory przy
sortowaniu leksykalnym, z zastosowaniem biecego
ustawienia locale i zestawu znakow, wypada midzy tymi
dwoma znakami, wlcznie z nimi. Jeeli pierwszym znakiem
wystpujcym po [ jest ! lub ^, to dopasowywany jest
dowolny znak nie zawarty w nawiasach. Kolejno sortowania
znakow w wyraeniach zakresu okrelona jest przez biece
ustawienie locale i warto zmiennej rodowiskowej
LC_COLLATE, jeli istnieje. Znak - mona dopasowa wlczajc
go jako pierwszy lub ostatni ze znakow zestawu. Znak ]
mona dopasowa wlczajc go jako pierwszy znak zestawu.
Wewntrz [ i ], mona podawa klasy znak'ow (character
classes), uywajc skladni [:klasa:], gdzie klasa jest jedn
z poniszych klas zdefiniowanych w standardzie POSIX.2:
alnum alpha ascii blank cntrl digit graph lower print
punct space upper xdigit
Klasa znakow dopasowuje dowolny znak nalecy do tej klasy.
Wewntrz [ i ], mona poda klas r'ownowanoci, uywajc skladni
[=z=], ktora dopasowuje wszystkie znaki o tej samej wadze
sortowania (zdefiniowan w biecym ustawieniu locale) co
znak z.
Wewntrz [ i ], skladnia [.symbol.] dopasowuje symbol
sortowania (collating symbol) symbol.
Jeeli przy pomocy wbudowanego shopt wlczono opcj extglob, to
rozpoznawane jest kilka rozszerzonych operatorow dopasowania
wzorcow. W poniszym opisie, lista-wzorc'ow jest list zloon z
jednego lub wicej wzorcow rozdzielonych znakiem |. Wzorce
zloone mona konstruowa przy pomocy jednego lub wicej poniszych
pod-wzorcow:
?(lista-wzorc'ow)
Dopasowuje zero lub jedno wystpienie zadanych
wzorcow
*(lista-wzorc'ow)
Dopasowuje zero lub wicej wystpie zadanych wzorcow
+(lista-wzorc'ow)
Dopasowuje jedno lub wicej wystpie zadanych
wzorcow
@(lista-wzorc'ow)
Dopasowuje dokladnie jeden z zadanych wzorcow
!(lista-wzorc'ow)
Dopasowuje cokolwiek procz jednego z zadanych
wzorcow
Usunicie cytowa
Po poprzednich interpretacjach, wszystkie niecytowane wystpienia
znakow \, ' i ", ktore nie wynikly z jednej z powyszych
interpretacji, s usuwane.
PRZEKIEROWANIE
Przed wykonaniem polecenia, jego wejcie i wyjcie mog zosta
przekierowane przy pomocy specjalnej notacji interpretowanej
przez powlok. Przekierowa mona te uywa do otwierania i
zamykania plikow dla rodowiska wykonywania biecej powloki.
Ponisze operatory przekierowania mog wystpowa przed lub pojawia
si gdziekolwiek wewntrz polecenia prostego lub wystpowa po
poleceniu. Przekierowania przetwarzane s w kolejnoci
wystpowania, od lewej do prawej.
W poniszych opisach, jeli pominito deskryptor pliku, a pierwszym
znakiem operatora przekierowania jest <, przekierowanie dotyczy
standardowego wejcia (deskryptor pliku 0). Jeeli pierwszym
znakiem operatora przekierowania jest >, przekierowanie dotyczy
standardowego wyjcia (deskryptor pliku 1).
Slowo nastpujce do operatorze przekierowania w poniszych opisach
podlega, chyba e podano inaczej, interpretacji nawiasow,
interpretacji tyldy, interpretacji parametrow, podstawianiu
wynikow polece, interpretacji wyrae arytmetycznych, usuwaniu
cytowa, rozwijaniu nazw plikow i podzialowi na slowa. Jeli
zinterpretowane zostanie jako wicej ni jedno slowo, to bash
zglosi bld.
Zauwa, e kolejno przekierowa jest znaczca. Na przyklad,
polecenie
ls > dirlist 2>&1
kieruje zarowno standardowe wyjcie jak i wyjcie diagnostyczne
(stderr) do pliku dirlist, podczas gdy polecenie
ls 2>&1 > dirlist
kieruje tylko standardowe wyjcie do pliku dirlist, gdy wyjcie
bldow zostalo zduplikowane jako standardowe wyjcie przed
przekierowaniem wyjcia do dirlist.
Bash obsluguje kilka nazw plikow w sposob specjalny gdy s one
uyte w przekierowaniach. Opisano to w poniszej tablicy:
/dev/fd/fd
Jeeli fd jest poprawn liczb calkowit, 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
Jeli host jest poprawn nazw hosta lub adresem
internetowym, a port jest liczb calkowit okrelajc
numer portu lub nazw uslugi, to bash usiluje
otworzy polczenie TCP do odpowiedniego gniazda.
/dev/udp/host/port
Jeli host jest poprawn nazw hosta lub adresem
internetowym, a port jest liczb calkowit okrelajc
numer portu lub nazw uslugi, to bash usiluje
otworzy polczenie UDP do odpowiedniego gniazda.
Nieudane otwarcie lub utworzenie pliku powoduje niepowodzenie
przekierowania.
Przekierowanie wejcia
Przekierowanie wejcia powoduje otwarcie do odczytu pliku,
ktorego nazwa wynika z interpretacji s/lowa. Odczyt bdzie
wykonywany z deskryptora pliku n lub standardowego wejcia
(zerowy deskryptor pliku) jeli nie podano n.
Ogolny format przekierowania wejcia:
[n]<s/lowo
Przekierowanie wyjcia
Przekierowanie wyjcia powoduje otwarcie do zapisu pliku, ktorego
nazwa wynika z interpretacji s/lowa. Zapis bdzie wykonywany z
deskryptora pliku n lub standardowego wyjcia (deskryptor pliku
1) jeli nie podano n. Jeeli plik nie istnieje jest tworzony;
jeeli istnieje obcinany jest do rozmiaru zerowego.
Ogolny format przekierowania wyjcia:
[n]>s/lowo
Jeeli operatorem przekierowania jest >, a zostala wlczona opcja
noclobber wbudowanego polecenie set, to przekierowanie nie
powiedzie si jeeli plik o nazwie wynikajcej z interpretacji
s/lowa istnieje i jest zwyklym plikiem. Jeeli operatorem
przekierowania jest >|, albo operatorem jest > przy niewlczonej
opcji noclobber, to wykonywana jest proba przekierowania, nawet
jeli plik s/lowo istnieje.
Do/lczanie przekierowanego wyjcia
Przekierowanie wyjcia w ten sposob powoduje, e plik o nazwie
wynikajcej z interpretacji s/lowa zostanie otwarty do dolczania
(append). Dolczanie bdzie wykonywane z deskryptora pliku n lub
standardowego wyjcia (deskryptor pliku 1) jeli nie podano n.
Jeeli plik nie istnieje jest tworzony.
Ogolny format dolczania wyjcia:
[n]>>s/lowo
Przekierowanie standardowego wyjcia i wyjcia b/ld'ow
Bash pozwala, przy pomocy tej konstrukcji, przekierowa
standardowe wyjcie (deskryptor pliku 1) i standardowe wyjcie
bldow (deskryptor plikow 2) do pliku, ktorego nazw jest
zinterpretowane s/lowo.
Istniej dwie postaci takiego przekierowania:
&>s/lowo
i
>&s/lowo
Sporod nich, zalecan jest pierwsza forma. Jest ona semantycznie
rownowana
>s/lowo 2>&1
Dokumenty w/lczone (Here Documents)
Ten typ przekierowania instruuje powlok, by czytala wejcie z
biecego rodla a do napotkania wiersza zawierajcego tylko s/lowo
(bez adnych koczcych odstpow). Wszystkie wiersze przeczytane do
tego momentu s nastpnie uywane jako standardowe wejcie
polecenia.
Format dokumentow wlczonych jest nastpujcy:
<<[-]s/lowo
dokument w/lczony
ogranicznik
Na s/lowie nie jest wykonywana interpretacja parametrow,
podstawiania wynikow polece, rozwijanie nazw plikow ani
interpretacja wyrae arytmetycznych. Jeeli jakie znaki w s/lowie
s cytowane, to ogranicznik jest wynikiem usunicia cytowa ze
s/lowa, a wiersze w dokumencie wlczonym nie s interpretowane.
Jeeli s/lowo nie jest cytowane, wszystkie wiersze dokumentu
wlczonego podlegaj interpretacji parametrow, podstawianiu polece
i interpretacji wyrae arytmetycznych. W tym ostatnim przypadku,
sekwencja \<nowalinia> jest ignorowana, a do cytowania znakow \,
$ i ` musi by uyte \.
Jeeli operatorem przekierowania jest <<-, to wszystkie pocztkowe
znaki tabulacji s obcinane z wierszy wejciowych i wiersza
zawierajcego ogranicznik. Pozwala to na ustawienie naturalnych
wci dla dokumentow wlczonych w skryptach powloki.
Powielanie deskryptor'ow plik'ow
Operator przekierowania
[n]<&s/lowo
sluy do powielania deskryptorow plikow wejciowych. Jeeli s/lowo
zinterpretowane zostanie jako jedna lub wicej cyfr, to
deskryptor pliku oznaczony przez n czyniony jest kopi tego
deskryptora. Jeeli cyfry w s/lowie nie okrelaj otwartego dla
wejcia deskryptora, pojawia si bld przekierowania. Jeeli s/lowo
zinterpretowane jest jako -, deskryptor pliku n jest zamykany.
Jeeli n nie zostalo okrelone, to stosowane jest standardowe
wejcie (deskryptor pliku 0).
Operator
[n]>&s/lowo
podobnie, sluy do powielania deskryptorow standardowego wyjcia.
Jeeli nie okrelono n, stosowane jest standardowe wyjcie
(deskryptor pliku 1). Jeeli cyfry w s/lowie nie okrelaj
deskryptora pliku otwartego do wyjcia, pojawia si bld
przekierowania. W przypadku specjalnym, jeeli pominito n, a
s/lowo nie jest interpretowane jako jedna lub wicej cyfr, to
przekierowywane s standardowe wyjcie i standardowe wyjcie bldow,
jak opisano poprzednio.
Otwieranie deskryptor'ow plik'ow do odczytu i zapisu
Operator przekierowania
[n]<>s/lowo
powoduje, e plik o nazwie wyniklej z interpretacji s/lowa
zostanie otwarty do odczytu i zapisu. Odczyt i zapis bd
wykonywane z deskryptora pliku n lub standardowego wejcia
(deskryptor pliku 0) jeli nie podano n. Jeeli plik nie istnieje
jest tworzony.
ALIASY
Aliasy (czyli synonimy) pozwalaj na zastpienie slowa lacuchem,
gdy zostanie ono uyte jako pierwsze slowo w poleceniu prostym.
Powloka utrzymuje list aliasow, ktore mog by ustawiane i
uniewaniane przy pomocy wbudowanych polece alias i unalias
(zobacz poniej WBUDOWANE POLECENIA POW/LOKI). Dla pierwszego
slowa kadego polecenia, jeli nie jest cytowane, nastpuje
sprawdzenie, czy posiada ono alias. Jeeli tak, to slowo to jest
zastpowane tekstem aliasu. Nazwa aliasu i zastpujcy ja tekst mog
zawiera dowolne poprawne wejcie powloki, lcznie z metaznakami
podanymi powyej, z wyjtkiem tego, e nazwy aliasow nie mog
zawiera znaku rownoci =. Pierwsze slowo tekstu zastpujcego jest
z kolei sprawdzane na aliasy, ale slowo identyczne z
interpretowanym wlanie aliasem nie jest interpretowane
powtornie. Oznacza to, e mona mie alias ls do ls -F, na
przyklad, a bash nie bdzie usilowal rekurencyjnie interpretowa
zastpujcego tekstu. jeeli ostatnim znakiem wartoci aliasu jest
odstp, to nastpne slowo polecenia wystpujce po aliasie ma rownie
sprawdzan interpretacj aliasow.
Aliasy s tworzone i pokazywane poleceniem alias, a usuwane
poleceniem unalias.
Nie ma adnego mechanizmu poslugiwania si argumentami w tekcie
zastpujcym. Jeli potrzebne s argumenty, powinna zosta uyta
funkcja powloki (zobacz poniej FUNKCJE).
Aliasy nie s interpretowane, gdy powloka nie jest interaktywna,
chyba e ustawiono opcj powloki expand_aliases przy pomocy shopt
(zobacz opis shopt w sekcji WBUDOWANE POLECENIA POW/LOKI poniej).
Reguly dotyczce definiowania i uywania aliasow s nieco
zagmatwane. Bash zawsze czyta co najmniej jeden pelny wiersz z
wejcia przed wykonaniem jakichkolwiek polece tego wiersza.
Aliasy interpretowane s w czasie odczytu polecenia, nie podczas
jego wykonywania. Z tego powodu, definicja aliasu wystpujca w
tym samym wierszu, co inne polecenie nie zadziala a do
przeczytania nastpnego wiersza wejcia. Na polecenia wystpujce
po definicji aliasu, w tym samym wierszu, nowy alias nie ma
wplywu. Zachowanie to ujawnia si take podczas wykonywania
funkcji. Aliasy interpretowane s w czasie odczytu definicji
funkcji, nie za podczas jej wykonywania, gdy sama definicja
funkcji stanowi polecenie zloone. W skutek tego aliasy
zdefiniowane w funkcji nie s dostpne, a do chwili po wykonaniu
funkcji. Dla bezpieczestwa, zawsze umieszczaj definicje aliasow
w odrbnym wierszu i nie uywaj alias w poleceniach zloonych.
Prawie w kadym zastosowaniu aliasy s wyparte przez funkcje
powloki.
FUNKCJE
Punkcja powloki, zdefiniowana jak opisano powyej, w sekcji
GRAMATYKA POW/LOKI, przechowuje szereg polece do poniejszego
wykonania. Gdy nazwa funkcji powloki uywana jest jako nazwa
polecenia prostego, wykonywana jest lista polece zwizanych z t
nazw funkcji. Funkcje wykonywane s w kontekcie biecej powloki;
do ich interpretacji nie jest tworzony aden nowy proces (zauwa
ronic w stosunku do wykonania skryptu powloki). Podczas
wykonywania funkcji, przekazane jej argumenty staj si
parametrami pozycyjnymi. Aktualizowany jest specjalny parametr
#, tak by odzwierciedlal zmian. Parametr pozycyjny 0 nie jest
zmieniany. Zmienna FUNCNAME podczas wykonywania funkcji
ustawiana jest na jej nazw. Wszystkie inne aspekty rodowiska
wykonywania powloki s identyczne midzy funkcj i jej wywolujcym,
z wyjtkiem tego, e nie jest dziedziczona pulapka (trap) DEBUG
(zobacz opis wbudowanego trap poniej, w sekcji WBUDOWANE
POLECENIA POW/LOKI ).
Zmienne lokalne dla funkcji mog by deklarowane przy pomocy
wbudowanego polecenia local. Zwykle zmienne i ich wartoci s
wspolne dla funkcji i jej wolajcego.
Jeeli w funkcji wywolywane jest wbudowane polecenie return,
funkcja koczy dzialanie i wykonywanie wznawiane jest od
nastpnego polecenia po wywolaniu funkcji. Gdy funkcja koczy
dzialanie, parametrom pozycyjnym i parametrowi specjalnemu #
przywracane s wartoci, jakie posiadaly one przed wykonaniem
funkcji.
List nazw i definicji funkcji mona uzyska przy pomocy opcji -f
wbudowanych polece declare lub typeset. Opcja -F polece declare
lub typeset podaje same nazwy funkcji. Funkcje mona eksportowa,
tak e bd one automatycznie zdefiniowane w podpowlokach. Wykonuje
si to przy pomocy opcji -f wbudowanego polecenia export.
Funkcje mog by rekurencyjne. Nie ma narzuconego ograniczenia na
liczb rekurencyjnych wywola.
OBLICZANIE WYRAE ARYTMETYCZNYCH
Powloka pozwala, pod pewnymi warunkami, na obliczanie wartoci
wyrae arytmetycznych (zobacz wbudowane polecenie let i
Interpretacja wyrae arytmetycznych). Obliczenia wykonywane s na
dlugich liczbach calkowitych (long integer), bez kontroli
przepelnienia (overflow), mimo i dzielenie przez 0 jest
przechwytywane i oznaczane jako bld. Operatory i ich priorytety
oraz sposob ich dolczania s takie same jak w jzyku C. Ponisza
lista operatorow pogrupowana jest w poziomy operatorow o
jednakowym priorytecie. Poziomy podano w kolejnoci malejcego
priorytetu.
id++ id--
post-inkrementacja i post-dekrementacja zmiennej
++id --id
pre-inkrementacja i pre-dekrementacja zmiennej
- + jednoargumentowy minus i plus
! ~ negacja logiczna i bitowa
** potgowanie
* / % mnoenie, dzielenie, reszta z dzielenia
+ - dodawanie, odejmowanie
<< >> lewo i prawostronne przesunicie bitowe
<= >= < >
porownanie
== != rownoci i nierowno
& bitowa koniunkcja (AND)
^ bitowa alternatywa wylczna (XOR)
| bitowa alternatywa (OR)
&& logiczna koniunkcja (AND)
|| logiczna alternatywa (OR)
wyra?wyra:wyra
obliczenie warunkowe (conditional evaluation)
= *= /= %= += -= <<= >>= &= ^= |=
przypisanie
wyra1 , wyra2
przecinek
Jako operandy dozwolone s zmienne powloki; interpretacja
parametrow przeprowadzana jest przed obliczeniem wyraenia.
Wewntrz wyraenia, do zmiennych powloki mona si te odwolywa przez
nazw, bez uycia skladni interpretacji parametrow. Gdy wystpi
odwolanie si do zmiennej, jej warto obliczana jest jako wyraenie
arytmetyczne. Zmienna powloki nie musi mie wlczonego atrybutu
liczby calkowitej by mogla by uyta w wyraeniu.
Stale z pocztkowym 0 interpretowane s jako liczby osemkowe.
Pocztkowe 0x lub 0X oznacza liczb szesnastkow. W pozostalych
przypadkach liczby maj posta [podstawa#]n, gdzie podstawajest
liczb dziesitn pomidzy 2 a 64 reprezentujc podstaw ukladu
pozycyjnego, za n liczb w ukladzie o tej podstawie. Jeli
pominito podstawa#, to uywana jest podstawa 10. Cyfry wiksze ni
9 reprezentowane s przez male litery, wielkie litery, @ i _, w
tej kolejnoci. Jeeli podstawa jest mniejsza bd rowna 36, to do
zapisu liczb pomidzy 10 a 35 mona uywa zamiennie malych i
wielkich liter.
Operatory interpretowane s w kolejnoci priorytetu. Podwyraenia w
nawiasach obliczane s jako pierwsze i mog uniewani podane wyej
reguly priorytetow.
WYRAENIA WARUNKOWE
Wyraenia warunkowe uywane s przez polecenie zloone [[ oraz
polecenia wbudowane test i [ do testowania atrybutow pliku i
wykonywania porowna lacuchowych i arytmetycznych. Wyraenia
zloone s z poniszych jedno- i dwuargumentowych skladowych. Jeli
ktory z argumentow plikowych jednej z skladowych jest w postaci
/dev/fd/n, to sprawdzany jest deskryptor pliku n. Jeeli
argument plik ktorej skladowej jest jednym z /dev/stdin,
/dev/stdout lub /dev/stderr, to sprawdzany jest, odpowiednio,
deskryptor 0, 1 lub 2.
-a plik
Prawda jeli plik istnieje.
-b plik
Prawda jeli plik istnieje i jest blokowym plikiem
specjalnym.
-c plik
Prawda jeli plik istnieje i jest znakowym plikiem
specjalnym.
-d plik
Prawda jeli plik istnieje jest katalogiem.
-e plik
Prawda jeli plik istnieje.
-f plik
Prawda jeli plik istnieje i jest plikiem zwyklym.
-g plik
Prawda jeli plik istnieje i ma ustawiony bit set-group-
id.
-h plik
Prawda jeli plik istnieje i jest dowizaniem symbolicznym.
-k plik
Prawda jeli plik istnieje i ma ustawiony bit ochrony
(sticky bit).
-p plik
Prawda jeli plik istnieje i jest potokiem nazwanym
(FIFO).
-r plik
Prawda jeli plik istnieje i daje si czyta.
-s plik
Prawda jeli plik istnieje i ma rozmiar wikszy ni zero.
-t fd Prawda jeli deskryptor pliku fd jest otwarty i odnosi si
do terminala.
-u plik
Prawda jeli plik istnieje i ma ustawiony bit set-user-id.
-w plik
Prawda jeli plik istnieje i daje si do zapisa.
-x plik
Prawda jeli plik istnieje i jest wykonywalny.
-O plik
Prawda jeli plik istnieje i jego wlacicielem jest
efektywny id uytkownika.
-G plik
Prawda jeli plik istnieje i jego wlacicielem jest
efektywny id grupy.
-L plik
Prawda jeli plik istnieje i jest dowizaniem symbolicznym.
-S plik
Prawda jeli plik istnieje i jest gniazdem.
-N plik
Prawda jeli plik istnieje i by zmieniany od czasu
ostatniego jego odczytu.
plik1 -nt plik2
Prawda jeli plik1 jest nowszy (wedlug daty modyfikacji)
od pliku2.
plik1 -ot plik2
Prawda jeli plik1 jest starszy ni plik2.
plik1 -ef plik2
Prawda jeli plik1 i plik2 maj ten sam numer urzdzenia i
i-wzla.
-o nazwa_opcji
Prawda jeli opcja powloki nazwa_opcji jest wlczona.
Zobacz zestawienie opcji w opisie opcji -o wbudowanego
set, poniej.
-z /lacuch
Prawda jeli dlugo /lacucha wynosi zero.
-n /lacuch
/lacuch Prawda jeli /lacuch ma dlugo niezerow.
/lacuch1 == /lacuch2
Prawda jeli lacuchy s rowne. Zamiast == mona uy =.
/lacuch1 != /lacuch2
Prawda jeli lacuchy nie s rowne.
/lacuch1 < /lacuch2
Prawda jeli /lacuch1 przy sortowaniu wystpowalby przed
/lacuchem2 wedlug biecego ustawienia locale.
/lacuch1 > /lacuch2
Prawda jeli /lacuch1 przy sortowaniu wystpowalby po
/lacuchu2 wedlug biecego ustawienia locale.
arg1 OP arg2
OP jest jednym z -eq, -ne, -lt, -le, -gt lub -ge. Te
arytmetyczne operatory dwuargumentowe zwracaj prawd jeli
arg1 jest odpowiednio rowne (eq), nie rowne (ne),
mniejsze ni (lt), mniejsze bd rowne (le), wiksze ni (gt)
lub wiksze bd rowne (ge) arg2. Arg1 i arg2 mog by
dodatnimi lub ujemnymi liczbami calkowitymi.
INTERPRETACJA POLECE PROSTYCH
Gdy wykonywane jest polecenie proste, powloka wykonuje nastpujce
interpretacje, przypisania i przekierowania, od lewej do prawej.
1. Slowa oznaczone przez analizator skladni jako przypisania
zmiennych (poprzedzajce nazw polecenia) i przekierowania
zachowywane s do poniejszego przetworzenia.
2. Slowa, nie bdce przypisaniami zmiennych ani
przekierowaniami s interpretowane. Jeeli po interpretacji
pozostan jakie slowa, to pierwsze z nich przyjmowane jest
za nazw polecenia a pozostale za argumenty.
3. Wykonywane s przekierowania, jak opisano powyej w sekcji
PRZEKIEROWANIE.
4. W kadym przypisaniu zmiennej tekst po znaku rownoci =
podlega interpretacji tyldy, interpretacji parametrow,
podstawianiu wynikow polece, interpretacji wyrae
arytmetycznych i usuwaniu cudzyslowow, zanim zostanie
przypisany do zmiennej.
Jeeli nie otrzymano adnej nazwy polecenia, to przypisania
zmienncyh dotycz rodowiska aktualnej powloki. W przeciwnim
razie, zmienne s dodawane do rodowiska wykonywanego polecenia i
nie maj wplywu na rodowisko biecej powloki. jeeli ktore z
przypisa usiluje nada warto zmiennej read-only, pojawia si bld,
a polecenie koczy prac z niezerowym kodem.
Jeeli nie otrzymano adnej nazwy polecenia, wykonywane s
przekierowania, ale nie maj one wplywu na biece rodowisko
powloki. Bld przekierowania powoduje, e polecenie koczy prac z
niezerowym kodem.
Jeeli po interpretacji istnieje nazwa polecenia, to wykonywanie
odbywa si jak opisano poniej. W przeciwnym wypadku, polecenie
koczy prac. Jeeli jednym z wykonanych krokow bylo podstawienie
wynikow polecenia, to zwracany kod zakoczenia jest kodem
ostatniego wykonanego podstawienia polecenia. Jeli nie wystpilo
podstawianie polece, to polecenie koczy prac z kodem zerowym.
WYKONYWANIE POLECE
Po podziale polecenia na slowa, jeli jego wynikiem jest
polecenie proste z opcjonaln list argumentow, podejmowane s
ponisze akcje.
Jeli polecenie nie zawiera ukonikow, powloka usiluje je
zlokalizowa. jeeli istnieje funkcja powloki o tej nazwie,
wywolywana jest ta funkcja, jak opisano powyej w sekcji FUNKCJE.
Jeeli nazwa nie pasuje do funkcji, powloka szuka jej na licie
polece wbudowanych. Jeeli nie znaleziono pasujce, to jest ono
wywolywane.
Jeeli nazwa nie jest ani funkcj powloki ani poleceniem
wbudowanym i nie zawiera ukonikow, to bash przeszukuje kady
element z PATH usilujc znale katalog zawierajcy plik wykonywalny
o takiej nazwie. Bash posluguje si tablic mieszajc (hash table)
do zapamitywania pelnych nazw plikow wykonywalnych (zobacz hash
w WBUDOWANE POLECENIA POW/LOKI poniej). Pelne przeszukiwanie
katalogow z PATH wykonywane jest tylko wtedy, gdy polecenia nie
znaleziono w tablicy mieszajcej. Jeeli poszukiwanie nie
powiodlo si, powloka wypisuje komunikat o bldzie i zwraca kod
zakoczenia rowny 127.
Jeeli poszukiwanie bylo pomylne lub jeli nazwa polecenia zawiera
jeden lub wicej ukonikow, powloka wykonuje zadany program w
odrbnym rodowisku wykonania. Argumentowi 0 przypisywana jest
podana nazwa, a pozostalym argumentom polecenia podane
argumenty, jeli byly takowe.
Jeeli wykonanie to nie powiedzie si, gdy plik nie ma formatu
wykonywalnego, a nie jest katalogiem, to zaklada si, e jest on
skryptem pow/loki, plikiem zawierajcym polecenia powloki.
Powolywana jest podpowloka do jego wykonania. Powloka ta
reinicjuje si, zatem efekt jest taki, jakby do obslugi skryptu
zostala wywolana nowa powloka, z wyjtkiem tego, e poloenia
polece zapamitane przez rodzica (zobacz hash poniej w WBUDOWANE
POLECENIA POW/LOKI s zachowywane przez potomka.
Jeeli program jest plikiem o zawartoci rozpoczynajcej si od #!,
to reszta pierwszego wiersza okrela interpreter dla tego
programu. Powloka uruchamia podany interpreter na systemach
operacyjnych, ktore same nie obsluguj tego formatu
wykonywalnego. Argumenty dla interpretera skladaj si z
pojedynczego opcjonalnego argumentu wystpujcego po nazwie
interpretera w pierwszym wierszu programu, nastpujcej po nim
nazwy programu i nastpujcych po niej argumentow polecenia, jeli
byly takowe.
RODOWISKO WYKONYWANIA POLECE
Powloka posiada rodowisko wykonywania (execution environment),
skladajce si z:
o otwarte pliki odziedziczone przez powlok przy wywolaniu,
zmodyfikowane przez przekierowania przekazane do
wbudowanego polecenia exec
o biecy katalog roboczy ustawiony przez cd, pushd lub popd,
albo odziedziczony przez powlok przy wywolaniu
o mask trybut tworzonych plikow ustawion przez umask albo
odziedziczon po rodzicu powloki
o biece pulapki ustawione przez trap
o parametry powloki ustawione przez przypisania zmiennych
przy pomocy set albo odziedziczone ze rodowiska rodzica
powloki
o funkcje powloki zdefiniowane podczas wykonywania lub
odziedziczone ze rodowiska rodzica powloki
o opcje wlczone przy wywolaniu (albo domylnie albo przy
pomocy argumentow wiersza polece) albo przez set
o opcje wlczone przez shopt
o aliasy powloki zdefiniowane przy pomocy alias
o rone id procesow, lcznie z identyfikatorami zada tla,
warto $$ i warto $PPID
Gdy ma zosta wykonane polecenie proste inne ni funkcja powloki
lub polecenie wbudowane, wywolywane jest w odrbnym rodowisku
wykonania, skldajcych si z poniszych elementow. Jeli nie podano
inaczej, wartoci dziedziczone s z powloki.
o otwarte pliki powloki, plus modyfikacje i dodatki
okrelone przez przekierowania polecenia
o biecy katalog roboczy
o maska trybu tworzonych plikow
o zmienne powloki oznaczone do wyeksportowania, razem ze
zmiennymi wyeksportowanymi do polecenia, przekazane w
rodowisku.
o pulapki przechwycone przez powlok resetowane s do wartoci
odziedziczonych przez ni od rodzica, a pulapki ignorowane
przez powlok s ignorowane.
Polecenie wywolane w odrbnym rodowisku nie moe wplywa na
rodowisko wykonywania powloki.
Podstawienia wynikow polece i polecenia asynchroniczne
wywolywane s w rodowisku podpowloki, ktore jest kopi rodowiska
powloki, z wyjtkiem tego, e pulapki przechwycone przez powlok s
resetowane do wartoci, jakie powloka odziedziczyla po rodzicu
podczas wywolania. Polecenia wbudowane wywolywane jako cz potoku
rownie wykonywane s w rodowisku podpowloki. Zmiany wykonane w
rodowisku podpowloki nie mog wplywa na rodowisko wykonywania
powloki.
Jeeli po poleceniu wystpuje &, a nie uaktywniono sterowania
zadaniami, to domylnym standardowym wejciem dla tego polecenia
jest pusty plik /dev/null. W przeciwnym razie wywolywane
polecenie dziedziczy deskryptory plikow po wolajcej powloce,
zmodyfikowane przekierowaniami.
RODOWISKO
Poczas wywolywania program otrzymuje tablic lacuchow zwan
rodowiskiem(environment). jest to lista par nazwa-warto, o
postaci nazwa=warto.
Powloka pozwala na manipulowanie rodowiskiem na kilka sposobow.
Przy wywolaniu, przeszukuje ona wlasne rodowisko i tworzy
parametr dla kadej znalezionej nazwy, automatycznie zaznaczajc
go do wyeksportowania do procesow potomnych. Wykonywane
polecenia dziedzicz rodowisko. Polecenia export i declare -x
pozwalaj na dodawanie i usuwanie ze rodowiska parametrow i
funkcji. Jeeli w rodowisku zmieniana jest warto parametru, to
nowa warto staje si czci rodowiska, zastpujc star. rodowisko
dziedziczone przez kade wykonywane polecenie sklada si z
pocztkowego rodowiska powloki, ktorego wartoci mog by w powloce
zmieniane, minus ewentualne pary usunite poleceniem unset, plus
dodane poprzez polecenia export i declare -x.
rodowisko dla dowolnego polecenia prostego czy funkcji moe by
tymczasowo powikszone przez poprzedzenie polecenia przypisaniem
parametrow, jak opisano powyej w sekcji PARAMETRY. Te
instrukcje przypisania maj wplyw wylcznie na rodowisko
postrzegane przez to polecenie.
Jeeli ustawiona jest opcja -k (zobacz poniej opis wbudowanego
polecenia set), to wszystkie przypisania parametrow umieszczane
s w rodowisku polecenia, a nie tylko te, ktore poprzedzaj nazw
polecenia.
Gdy bash wywoluje polecenie zewntrzne, zmienna _ ustawiana jest
na peln nazw pliku polecenia i przekazywana temu poleceniu w
jego rodowisku.
KOD ZAKOCZENIA
Dla celow powloki, polecenie, ktore zakoczylo prac z zerowym
kodem zakoczenia, powiodlo si. Zerowy kod oznacza powodzenie.
Niezerowy kod oznacza niepowodzenie. Gdy polecenie koczy prac z
bldem krytycznym N, bash posluguje si wartoci 128+N jako kodem
zakoczenia.
Jeeli nie znaleziono polecenia, proces potomny powolany do jego
wykonania zwraca kod 127. Jeeli polecenie zostalo znalezione,
ale nie jest wykonywalne, kod zakoczenia wynosi 126.
Jeeli polecenie nie powiodlo si z powodu bldu podczas
interpretacji lub przekierowania, kod zakoczenia jest wikszy od
zera.
Wbudowane polecenia powloki zwracaj kod 0 (true prawda) jeli si
powiodly, i niezerowy (false falsz) jeli podczas ich wykonywania
pojawil si bld. Wszystkie polecenia wbudowane zwracaj kod 2 dla
wskazania niepoprawnego uycia.
Sam Bash zwraca kod zakoczenia ostatniego wykonanego polecenia,
chyba e pojawi si bld skladni, wowczas koczy prac z wartoci
niezerow. Zobacz te poniej polecenie wbudowane exit.
SYGNA/LY
Gdy bash jest interaktywny, przy braku jakichkolwiek pulapek
(przechwytywania sygnalow), ignoruje on SIGTERM (tak, e kill 0
nie zabija powloki interaktywnej), a SIGINT jest przechwytywany
i obslugiwany (tak, e wbudowane polecenie wait daje si przerwa).
We wszystkich przypadkach, bash ignoruje SIGQUIT. Jeeli dziala
kontrola zada, bash ignoruje SIGTTIN, SIGTTOU i SIGTSTP.
Zadania synchroniczne uruchomione przez bash maj procedury
obslugi sygnalow (signal handlers) ustawione na wartoci
odziedziczone przez powlok po rodzicu. Jeeli nie pracuje
kontrola zada, to polecenia asynchroniczne ignoruj rownie SIGINT
i SIGQUIT. Polecenia uruchamiane wskutek podstawiania polece
ignoruj generowane z klawiatury sygnaly kontroli zada SIGTTIN,
SIGTTOU i SIGTSTP.
Powloka domylnie koczy prac po otrzymaniu SIGHUP. Przed
zakoczeniem, powloka interaktywna rozsyla otrzymany SIGHUP do
wszystkich zada, pracujcych lub zatrzymanych. Do zatrzymanych
zada wysylany jest SIGCONT by upewni si, e otrzymuj SIGHUP.
Chcc unikn wyslania sygnalu przez powlok do konkretnego zadania,
naley usun je z tablicy zada przy pomocy wbudowanego polecenia
disown (zobacz poniej WBUDOWANE POLECENIA POW/LOKI) lub oznakowa,
by nie otrzymywalo SIGHUP, poslugujc si disown -h.
Jeeli przy pomocy shopt zostala ustawiona opcja huponexit
powloki, bash wysyla SIGHUP do wszystkich zada, gdy koczy prac
interaktywna powloka zgloszeniowa.
Gdy bash podczas oczekiwania na ukoczenie polecenia otrzymuje
sygnal, dla ktorego ustawiono pulapk, pulapka ta nie zostanie
wykonana a do zakoczenia pracy polecenia. Gdy bash oczekuje na
polecenie asynchroniczne za porednictwem wbudowanego wait,
odbior sygnalu, dla ktorego ustawiono przechwytywanie spowoduje,
e wbudowane wait natychmiast skoczy prac z kodem wikszym od 128,
po czym natychmiast zostanie wywolana pulapka.
KONTROLA ZADA
Kontrola zada odnosi si do moliwoci selektywnego zatrzymywania
(zawieszania - suspend) wykonywania procesow i poniejszej
kontynuacji (wznawiania - resume) ich wykonywania. Uytkownik
zwykle wykorzystuje to udogodnienie za porednictwem
interaktywnego interfejsu obslugiwanego wspolnie przez systemowy
sterownik terminala i bash.
Powloka kojarzy z kadym potokiem zadanie. Przechowuje tablic
aktualnie wykonywanych zada, ktor mona przeglda za pomoc
polecenia jobs. Gdy bash uruchamia zadanie asynchronicznie (w
tle), wypisuje wiersz w rodzaju:
[1] 25647
wskazujcy, e zadanie to ma numer 1 a ID ostatniego procesu w
potoku zwizanym z zadaniem wynosi 25647. Wszystkie procesy w
jednym potoku nale do tego samego zadania. Bash posluguje si
abstrakcj (abstraction) zadania jako podstaw kontroli zada.
Dla ulatwienia implementacji interfejsu uytkownika do kontroli
zada, system operacyjny utrzymuje pojcie ID grupy proces'ow
biecego terminala (current terminal process group ID). Elementy
tej grupy procesow (procesy, ktorych ID grupy procesow jest
rowny ID grupy procesow biecego terminala) otrzymuj generowane z
klawiatury sygnaly, takie jak SIGINT. Mowimy, e procesy te
pracuj pierwszoplanowo. Procesy t/la to takie, ktorych ID grupy
procesow roni si od terminala; procesy takie s odporne na
sygnaly pochodzce z klawiatury. Tylko procesom pierwszoplanowym
wolno czyta z lub pisa na terminalu. Do procesow tla usilujcych
czyta (pisa) z terminala wysylany jest przez sterownik terminala
sygnal SIGTTIN (SIGTTOU), ktory, jeli nie zostanie przechwycony,
wstrzymuje proces.
Jeeli system operacyjny, na ktorym dziala bash obsluguje kontrol
zada, bash zawiera funkcje do jej wykorzystywania. Nacinicie
klawisza wstrzymania (zwykle ^Z, Control-Z) podczas pracy
procesu powoduje, e proces ten zostanie zatrzymany a sterowanie
zostanie zwrocone do bash. Nacinicie klawisza op'onione
wstrzymanie (zwykle ^Y, Control-Y) powoduje, e proces zostanie
zatrzymywany gdy bdzie usilowal czyta wejcie z terminala, a
sterowanie powroci do bash. Uytkownik moe nastpnie zmienia stan
takiego zadania, poslugujc si 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 oczekujcego wyjcia i
wprowadzonych, a nieprzetworzonych nacini klawiszy (typeahead).
Istnieje kilka sposobow wskazywania zadania w powloce. Znak %
poprzedza nazw zadania. Zadanie numer n mona wskaza jako %n.
Zadanie moe by te okrelone przez uycie przedrostka nazwy uytej
do jego uruchomienia lub podlacucha, jaki wystpuje w jego
wierszu polece. Na przyklad, %ce odnosi si do zatrzymanego
zadania ce. Jeli przedrostek pasuje do wicej ni jednego
zadania, bash zglasza bld. Z drugiej strony, uycie %?ce,
wskazuje na zadanie zawierajce podlacuch ce w swym wierszu
polece. Jeeli lacuch pasuje do wicej ni jednego zadania, bash
zglasza bld. Symbole %% i %+ okrelaj rozumiane przez powlok
biece zadanie, bdce ostatnim zadaniem zatrzymanym, gdy bylo na
pierwszym planie lub uruchomionym w tle. Do poprzedniego
zadania mona odwolywa si przy pomocy %-. W wyjciu odnoszcym si
do zada (np. wyjcie polecenia jobs), biece zadanie jest zawsze
zaznaczone znakiem +, a zadanie poprzednie -.
Do przywrocenia zadania na pierwszy plan mona posluy si po
prostu jego nazw: %1 jest synonimem dla ,,fg %1'',
przywracajcego zadanie 1 z tla na pierwszy plan. Podobnie, ,,%1
&'' wznawia zadanie 1 w tle, rownowanie do ,,bg %1''''.
Powloka natychmiast dowiaduje si czy zadanie zmienilo stan.
Normalnie, bash czeka ze zgloszeniem zmian do momentu, gdy ma
wywietli zacht, by nie przerywa innego wyjcia. Jeeli wlczono
opcj -b wbudowanego polecenia set, bash zglasza takie zmiany
natychmiast. Dla kadego koczcego prac procesu potomnego
wykonywana jest ewentualna pulapka przechwytujca SIGCHLD.
Jeeli wykonano prob zakoczenia pracy bash przy istniejcych
zatrzymanych zadaniach, powloka wypisuje komunikat ostrzegawczy.
Mona wowczas posluy si poleceniem jobs do sprawdzenia ich stanu.
Jeeli wykonywana jest druga proba zakoczenia pracy bez
wystpienia wtrconego midzy nie polecenia, powloka nie wypisuje
kolejnego ostrzeenia a zatrzymane zadania s przerywane.
ZACHTA POW/LOKI
Przy wykonywaniu interaktywnym bash wywietla glowny symbol
zachty (primary prompt) PS1 kiedy jest gotowa na odczyt
polecenia, za wtorn (secondary) zacht PS2 kiedy potrzebuje wicej
danych z wejcia do uzupelnienia polecenia. Bash pozwala na
dostosowywanie tych lacuchow zachty poprzez wstawianie pewnej
iloci znakow specjalnych rozpoczynajcych si odwrotnym ukonikiem,
ktore s dekodowane jak nastpuje:
\a znak dzwonka ASCII (07)
\d data w formacie "DzieTyg Miesic Dzie" format (np.,
"Tue May 26")
\e znak escape ASCII (033)
\h nazwa hosta do pierwszej kropki `.'
\H nazwa hosta
\j liczba zada aktualnie obslugiwanych przez powlok
\l glowna cz nazwy urzdzenia terminala powloki
\n znak nowej linii
\r powrot karetki
\s nazwa powloki, glowna cz nazwy $0 (fragment
wystpujcy po ostatnim ukoniku)
\t biecy czas w formacie 24-godzinnym GG:MM:SS
\T biecy czas w formacie 12-godzinnym GG:MM:SS
\@ biecy czas w 12-godzinnym formacie am/pm
\A biecy czas w 24-godzinnym formacie GG:MM
\u nazwa biecego uytkownika (username)
\v wersja programu bash (np. 2.00)
\V wydanie bash, wersja+poziom lat (np., 2.00.0)
\w biecy katalog roboczy
\W glowna cz nazwy biecego katalogu roboczego
\! numer tego polecenia w historii
\# numer polecenia tego polecenia
\$ Jeeli efektywnym UID jest 0, to #, w przeciwnym
razie $
\nnn znak odpowiadajcy szesnastkowej liczbie nnn
\\ odwrotny ukonik
\[ pocztek sekwencji znakow niedrukowalnych, ktora
moe sluy do osadzenia w zachcie sekwencji
sterujcych terminalem
\] koniec sekwencji znakow niedrukowalnych
Numer polecenia i numer w historii s zwykle rone: numer
polecenia w historii jest jego pozycj na licie historii, ktora
moe obejmowa polecenia odtworzone z pliku historii (zobacz
poniej HISTORIA), podczas gdy numer polecenia jest pozycj w
sekwencji polece wykonanych w obecnej sesji powloki. Po
zdekodowaniu, lacuch jest interpretowany poprzez interpretacj
parametrow, podstawianie wynikow polece, interpretacj wyrae
arytmetycznych, interpretacj lacuchow i usuwanie cytowa, zgodnie
z wartoci opcji promptvars powloki (zobacz opis polecenia shopt
w sekcji WBUDOWANE POLECENIA POW/LOKI poniej).
READLINE
Jest to biblioteka obslugujca odczytywanie wejcia podczas
poslugiwania si powlok interaktywn, chyba e przy wywolaniu
powloki podano opcj --noediting. Domylnie, polecenia edycji
wiersza s podobne do wystpujcych w emacsie. Dostpny jest take
interfejs edycji wiersza w stylu vi. By wylczy edycj wiersza po
uruchomieniu powloki, uyj opcji +o emacs lub +o vi wbudowanego
polecenia set (zobacz WBUDOWANE POLECENIA POW/LOKI poniej).
Notacja Readline
W tej sekcji, do zapisu nacini klawiszy uywana jest notacja w
stylu emacsa. Klawisze kontrolne zapisywane s jako C-klawisz,
np., C-n oznacza Control-N. Podobnie, meta klawisze zapisywane s
jako M-klawisz, zatem M-x oznacza Meta-X. (Na klawiaturach bez
klawisza meta M-x oznacza ESC x, tj. nacinij klawisz Escape a
nastpnie klawisz x. Czyni to ESC the przedrostkiem meta (meta
prefix). Kombinacja M-C-x oznacza ESC-Control-x, lub nacinij
klawisz Escape, nastpnie przytrzymaj klawisz Control podczas
naciskania klawisza x.)
Poleceniom readline mona podawa numeryczne argumenty, ktore
normalnie dzialaj jako licznik powtorze. Czasami jednak,
znaczcy jest znak argumentu. Przekazanie ujemnego argumentu
poleceniu, ktore dziala w przod (np. kill-line) powoduje, e
bdzie ono dziala odwrotnym kierunku (wstecz). Polecenia,
ktorych zachowanie z argumentami odbiega od podanego odnotowano
poniej.
Gdy polecenie opisano jako usuwajce (killing) tekst, tekst ten
jest zachowywany to ewentualnego poniejszego odzyskania
(przywo/lania yanking). Kolejne usunicia powoduj, e tekst jest
zbierany w jedn calo, ktor mona odzyska naraz. Polecenia nie
usuwajce tekstu oddzielaj kawalki tekstu w stosie usuwania
(killing ring).
Inicjalizacja Readline
Readline dostosowywane jest przy pomocy polece umieszczanych w
pliku inicjujcym (plik inputrc). Nazwa tego pliku brana jest z
wartoci zmiennej INPUTRC. Jeeli zmienna ta nie jest ustawiona,
domyln nazw jest ~/.inputrc. Gdy startuje program uywajcy
biblioteki readline, odczytywany jest plik inicjujcy, po czym
ustawiane s przypisania klawiszy i zmienne. Istnieje tylko
kilka podstawowych konstrukcjii dozwolonych w pliki inicjacji
readline. Puste wiersze s ignorowane. Wiersze rozpoczynajce si
od # s komentarzami. Wiersze rozpoczynajce si od $ wskazuj
konstrukcje warunkowe. Inne wiersze wyznaczaj przypisania
klawiszy i ustawienia zmiennych.
Domylne przypisania klawiszy mona zmieni przy pomocy pliku
inputrc. Inne programy poslugujce si t bibliotek mog dodawa
wlasne polecenia i przypisania.
Na przyklad, umieszczenie
M-Control-u: universal-argument
lub
C-Meta-u: universal-argument
w inputrc spowodowaloby, e M-C-u wywolywaloby polecenie readline
universal-argument.
Rozpoznawane s nastpujce symboliczne nazwy znakow: RUBOUT, DEL,
ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE i TAB.
Oprocz nazw polece readline pozwala przypisywa klawisze do
lacucha. Lacuch ten zostanie wstawiony po naciniciu klawisza
(makro).
Przypisania klawiszy Readline
Skladnia przypisa klawiszy sterujcych w pliku inputrc jest
prosta. Wymagana jest wylcznie nazwa polecenia lub tekst makra i
sekwencja klawiszy, do ktorej powinno by przypisane. Klawisze
mog by podane na dwa sposoby: jako symboliczna nazwa klawisza,
moe by z przedrostkami Meta- lub Control-, lub jako sekwencja
klawiszy.
Przy uyciu postaci nazwa-klaw:nazwa-funkcji lub makro, nazwa-
klaw jest nazw klawisza zapisan w jz.angielskim. Na przyklad:
Control-u: universal-argument
Meta-Rubout: backward-kill-word
Control-o: "> output"
W powyszym 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
wyraonego po prawej (to jest, wstawiania tekstu ,,> output'' w
wiersz).
W drugiej postaci, "sekw-klaw":nazwa-funkcji lub makro, sekw-
klaw roni si od nazwa-klaw powyej tym, e przez umieszczenie
sekwencji w cudzyslowach mona poda lacuchy oznaczajce cal
sekwencj klawiszy. Mona posluy si niektorymi kombinacjami
klawiszy w stylu GNU Emacs-a, jak w poniszym przykladzie, nie s
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, za ESC [ 1 1 ~ przypisane jest do wstawienia
tekstu ,,Klawisz funkcyjny 1''. Oto pelny zestaw sekwencji
specjalnych w stylu GNU Emacs
\C- przedrostek control
\M- przedrostek meta
\e znak escape
\\ odwrotny ukonik
\" doslowny cudzyslow "
\' doslowny apostrof '
Oprocz sekwencji specjalnych w stylu GNU Emacsa, dostpny jest
drugi zestaw sekwencji z uyciem odwrotnego ukonika:
\a alarm (dzwonek)
\b backspace
\d delete
\f wysuw strony (form feed)
\n nowa linia (newline)
\r powrot karetki (carriage return)
\t tabulacja pozioma (horizontal tab)
\v tabulacja pionowa (vertical tab)
\nnn omiobitowy znak, ktorego wartoci jest osemkowa
liczba nnn (jedna do trzech cyfr)
\xHH omiobitowy znak, ktorego wartoci jest szesnastkowa
liczba nnn (jedna lub dwie cyfry szesnastkowe)
Podczas wprowadzania tekstu makra, do wskazania jego definicji
musz by uyte pojedyncze lub podwojne cudzyslowy. Zaklada si, e
tekst niecytowany jest nazw funkcji. W ciele makra
interpretowane s sekwencje specjalne z uyciem odwrotnego ukonika
opisane powyej. odwrotny ukonik cytuje dowolny inny znak w
tekcie makra, lcznie z " i '.
Bash umoliwia wywietlanie i zmian biecych przypisa klawiszy
readline za pomoc wbudowanego polecenia bind. Tryb edycji mona
przelcza podczas uywania interaktywnego przez posluenie si opcj
-o wbudowanego polecenia set (zobacz poniej WBUDOWANE POLECENIA
POW/LOKI).
Zmienne Readline
Readline posiada zmienne, ktorych mona uywa do dodatkowego
dostosowania jej zachowania. Zmienna moe by ustawiana w pliku
inputrc przy pomocy instrukcji postaci
set nazwa-zmiennej warto
Z wymienionymi niej wyjtkami, zmienne readline mog przyjmowa
wartoci On lub Off. A oto zmienne i ich wartoci domylne:
bell-style (audible)
Kontroluje, co dzieje si gdy readline chce uy sygnalu
dwikowego terminala. Jeli ustawiona na none, readline
nigdy nie emituje sygna/lu. Jeli ustawiona na visible,
readline pos/luguje si "widzialnym dzwonkiem" (visible
bell), jeli jest dostpny. Jeeli ustawiona na audible,
readline usi/luje uzyska sygna/l dwikowy z terminala.
comment-begin (,,#'')
Lacuch wstawiany, gdy wykonywane jest polecenie
insert-comment readline. Polecenie to jest przypisane do
M-# w trybie emacs, za do # w trybie vi.
completion-ignore-case (Off)
Jeeli ustawiona na On, readline wykonuje dopasowywanie i
uzupelnianie nazw plikow bez rozroniania wielkoci liter.
completion-query-items (100)
Okrela, kiedy uytkownik jest pytany o ogldanie takiej
liczby moliwych uzupelnie tworzonych przez polecenie
possible-completions. Moe by ustawiona na dowoln liczb
calkowit wiksz lub rown zero. Jeeli liczba moliwych
uzupelnie jest wiksza bd rowna wartoci tej zmiennej, to
uytkownik jest pytany czy chce je ogldn; w przeciwnym
razie s one po prostu pokazywane na terminalu.
convert-meta (On)
Jeli ustawione na On, readline bdzie zamienial znaki z
ustawionym osmym bitem na sekwencje klawiszy ASCII przez
obcicie osmego bitu i poprzedzenie znakiem escape (w
efekcie, uywajc escape jako przedrostka meta).
disable-completion (Off)
Jeli ustawione na On, readline zabroni uzupelniania slow.
Znaki uzupelniania zostan wstawione w wiersz tak, jakby
zostaly przypisane do self-insert.
editing-mode (emacs)
Kontroluje czy readline rozpoczyna prac z zestawem
przypisa klawiszy podobnym do emacs czy do vi.
editing-mode moe by ustawiane albo na emacs albo na vi.
enable-keypad (Off)
Gdy jest ustawione na On, readline bdzie usilowa wlczy
numeryczny blok klawiatury (application keypad) przy
wywolaniu. Niektore systemy potrzebuj tego do wlczenia
klawiszy strzalek.
expand-tilde (Off)
Jeeli ustawione na on, podczas proby uzupelniania slow
readline wykonuje interpretacj tyldy.
history-preserve-point
Ustawione na on powoduje, e kod obslugi historii polece
usiluje w kadym wierszu polece odzyskanym za pomoc
previous-history lub next-history umieci punkt (biec
pozycj kursora) w tym samym miejscu.
horizontal-scroll-mode (Off)
Ustawione na On powoduje, e readline do wywietlania
posluguje si pojedynczym wierszem. Jeli wejcie jest
dlusze ni szeroko ekranu, to jego zawarto jest wowczas
przewijana w poziomie w pojedynczym wierszu ekranu,
zamiast zawijania do nastpnego wiersza.
input-meta (Off)
Jeli ustawiona na On, readline dopuci omiobitowe wejcie
(to znaczy, nie bdzie obcina osmego bitu z odczytywanych
znakow), bez wzgldu na to, co twierdzi terminal o
moliwoci obslugi. Nazwa meta-flag jest synonimem tej
zmiennej.
isearch-terminators (,,C-[C-J'')
Lacuch znakow, ktory powinien przerywa wyszukiwanie
krokowe (incremental search) bez poniejszego wykonywania
znaku jako polecenia. Jeeli zmiennej tej nie nadano
wartoci, to wyszukiwanie krokowe bd przerywa ESC i C-J.
keymap (emacs)
Ustawia biece mapowanie klawiatury readline. Zestawami
poprawnych mapowa s emacs, emacs-standard, emacs-meta,
emacs-ctlx, vi, vi-command i vi-insert. vi jest
rownowanikiem dla vi-command; emacs jest rownowane
emacs-standard. Domyln wartoci jest emacs; warto
editing-mode rownie wplywa na domylne mapowanie.
mark-directories (On)
Jeeli ustawione na On, to uzupelniane nazwy katalogow maj
dolczany kocowy ukonik.
mark-modified-lines (Off)
Jeeli ustawione na On, wiersze historii, ktore zostaly
zmienione wywietlane s z poprzedzajc je gwiazdk (*).
match-hidden-files (On)
Ta zmienna, gdy jest ustawiona na On, powoduje, e
readline wykonujc uzupelnianie nazw plikow dopasowuje
pliki, ktorych nazwy zaczynaj si od kropki `.' (pliki
ukryte), chyba e uytkownik podal tak pocztkow kropk w
nazwie, jaka ma by uzupelniona.
output-meta (Off)
Jeeli ustawione na On, readline wywietla znaki z
ustawionym osmym bitem wprost zamiast jako sekwencje
specjalne z meta-przedrostkiem.
print-completions-horizontally (Off)
Jeeli ustawione na On, readline wywietla dopasowane
uzupelnienia w kolejnoci alfabetycznej poziomo, zamiast w
dol ekranu.
show-all-if-ambiguous (Off)
Zmienia to domylne zachowanie funkcji uzupelniania. Jeeli
jest ustawione na on, to slowa majce wicej ni jedno
moliwe uzupelnienie powoduj, e natychmiast zostan podane
dopasowania zamiast wyemitowania sygnalu dwikowego.
visible-stats (Off)
Jeeli ustawione na On, to przy wywietlaniu moliwych
uzupelnie do nazwy pliku zostanie dolczony znak okrelajcy
typ pliku wskazywany przez stat(2).
Konstrukcje warunkowe Readline
Readline implementuje udogodnienie podobne duchem do funkcji
kompilacji warunkowej preprocesora C, pozwalajce na wykonywanie
przypisa klawiszy i ustawie zmiennych w zalenoci od wyniku
testow. Uywane s cztery dyrektywy analizatora skladni.
$if Konstrukcja $if pozwala na wykonanie przypisa klawiszy w
oparciu o tryb edycji, uywany terminal lub aplikacj
korzystajc z readline. Tekst testu rozciga si do koca
wiersza; do jego wydzielenia nie s wymagane adne znaki.
mode Posta mode= dyrektywy $if sluy do sprawdzania czy
readline jest w trybie emacs czy vi. Moe by
wykorzystywana, na przyklad, w polczeniu z
poleceniem set keymap, do ustawienia przypisa w
mapowaniach emacs-standard i emacs-ctlx tylko jeli
readline uruchamia si w trybie emacs.
term Posta term= mona wykorzystywa do wlczenia
specyficznych dla terminala przypisa klawiszy, by
moe do przypisania wyjcia dla sekwencji klawiszy
funkcyjnych terminala. Slowo po prawej stronie =
sprawdzane jest z zarowno peln nazw terminala,
jaki i czci jego nazwy przed pierwszym -. Umoliwia
to, na przyklad, dopasowanie przez sun zarowno sun
jak i sun-cmd.
aplikacja
Konstrukcja aplikacja sluy do wlczania ustawie
specyficznych dla aplikacji. Kady program
korzystajcy z biblioteki readline ustawia nazw
aplikacji (application name), a plik inicjujcy moe
sprawdzi czy ma ona jak szczegoln warto. Moe to
by uywane do przypisywania sekwencji klawiszy
funkcjom przydatnym w danym programie. Na
przyklad, ponisze polecenie dodaje sekwencj
klawiszy wykonujc w bash cytowanie biecego lub
poprzedniego slowa:
$if Bash
# Cytuj biece lub poprzednie slowo
"\C-xq": "\eb\"\ef\""
$endif
$endif Polecenie to, jak wida w poprzednim przykladzie, koczy
wykonywanie polecenia $if.
$else Polecenia w tej galzi dyrektywy $if wykonywane s gdy nie
powiedzie si sprawdzenie warunku.
$include
Dyrektywa ta pobiera jako argument pojedyncz nazw pliku i
odczytuje polecenia i przypisania z tego pliku. Na
przyklad, ponisza dyrektywa odczytalaby /etc/inputrc:
$include /etc/inputrc
Wyszukiwanie
Readline zapewnia polecenia do wyszukiwania w historii polece
(zobacz poniej HISTORIA) wierszy zawierajcych zadany lacuch.
Istniej dwa tryby wyszukiwania: krokowy (incremental) i nie-
niekrokowy(non-incremental).
Wyszukiwania krokowe rozpoczynaj si przed zakoczeniem wpisywania
przez uytkownika szukanego tekstu. Po wpisaniu kadego znakow
szukanego lacucha readline wywietla nastpn pozycj historii
pasujc do wpisanego do tej pory lacucha. Wyszukiwanie krokowe
wymaga tylko tylu znakow ile potrzebne jest do znalezienia
podanej pozycji historii. Znaki wystpujce w wartoci zmiennej
isearch-terminators slu do przerwania wyszukiwania krokowego.
Jeeli zmienna ta nie ma przypisanej wartoci, to wyszukiwanie
przerywaj znaki Escape i Control-J. Control-G porzuca
wyszukiwanie krokowe i przywraca pierwotny wiersz. Gdy przerwie
si wyszukiwanie, pozycja historii zawierajca poszukiwany lacuch
staje si biecym wierszem.
W celu odnalezienia innych pasujcych pozycji, naley nacisn
odpowiednio Control-S lub Control-R. Wyszukuje to wstecz lub w
przod kolejn pasujc do dotychczas wpisanego lacucha pozycj
historii. Wszystkie inne sekwencje klawiszy przypisane do
polecenia readline przerywaj wyszukiwanie i wykonuj zadane
polecenie. Na przyklad, znak nowej linii przerywa wyszukiwanie
i akceptuje wiersz, wykonujc skutkiem tego polecenie z listy
historii.
Readline pamita lacuch uyty w ostatnim wyszukiwaniu krokowym.
Jeeli Control-R zostanie nacinite dwa razy, bez wprowadzenia
pomidzy naciniciami innych znakow definiujcych nowy lacuch
szukania, to wykorzystywany jest uprzednio zapamitany lacuch.
Wyszukiwania nie-krokowe czytaj caly szukany lacuch przed
rozpoczciem wyszukiwania pasujcych wierszy historii. Lacuch moe
by wpisany przez uytkownika lub by czci zawartoci biecego
wiersza.
Nazwy polece Readline
Poniej podano list nazw polece i domylnych sekwencji klawiszy,
do ktorych s one przypisane. Nazwy polece bez towarzyszcej
sekwencji klawiszy s domylnie nieprzypisane. W poniszych
opisach, punkt oznacza biec pozycj kursora, za zaznaczenie do
pozycji kursora zapamitanej przez polecenie set-mark. Tekst
pomidzy punktem a zaznaczeniem nazywany jest obszarem.
Polecenia ruchu
beginning-of-line (C-a)
Przesuwa na pocztek biecego 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 nastpnego slowa. Slowa zloone s ze
znakow alfanumerycznych (liter i cyfr).
backward-word (M-b)
Przesuwa na pocztek biecego, lub poprzedniego, slowa.
Slowa zloone s ze znakow alfanumerycznych (liter i cyfr).
clear-screen (C-l)
Czyci ekran pozostawiajc biecy wiersz na gorze ekranu. Z
argumentem, odwiea biecy wiersz bez czyszczenia ekranu.
redraw-current-line
Odwiea biecy wiersz.
Polecenia operujce na historii
accept-line (Newline, Return)
Akceptuje wiersz bez wzgldu na to, gdzie znajduje si
kursor. Jeeli wiersz ten nie jest pusty, to dodaje go do
listy historii stosownie do stanu zmiennej HISTCONTROL.
Jeeli wiersz jest zmienionym wierszem historii, to
odtwarza wiersz historii do stanu pierwotnego.
previous-history (C-p)
prowadza poprzednie polecenie z listy historii,
przesuwajc si wstecz listy.
next-history (C-n)
ciga nastpne polecenie z listy historii, przesuwajc si do
przodu na licie.
beginning-of-history (M-<)
Przesuwa na pierwszy wiersz w historii.
end-of-history (M->)
Przesuwa na koniec historii wprowadzania, tj. obecnie
wprowadzanego wiersza.
reverse-search-history (C-r)
Wyszukuje wstecz poczynajc od biecego wiersza i
przesuwajc si, w razie potrzeby, 'w gor' historii. Jest
to wyszukiwanie krokowe.
forward-search-history (C-s)
Wyszukuje w przod poczynajc od biecego wiersza i
przesuwajc si, w razie potrzeby, 'w dol' historii. Jest
to wyszukiwanie krokowe.
non-incremental-reverse-search-history (M-p)
Wyszukuje wstecz poczynajc od biecego wiersza poslugujc
si wyszukiwaniem nie-krokowym podanego przez uytkownika
lacucha.
non-incremental-forward-search-history (M-n)
Wyszukuje w przod poczynajc od biecego wiersza poslugujc
si wyszukiwaniem nie-krokowym podanego przez uytkownika
lacucha.
history-search-forward
Wyszukuje w przod w historii lacucha znakow pomidzy
pocztkiem biecego wiersza a punktem. Jest to
wyszukiwanie nie-krokowe.
history-search-backward
Wyszukuje wstecz w historii lacucha znakow pomidzy
pocztkiem biecego wiersza a biec pozycj kursora (punkt).
Jest to wyszukiwanie nie-krokowe.
yank-nth-arg (M-C-y)
Wstawia pierwszy argument poprzedniego polecenia (zwykle
drugie slowo z poprzedniego wiersza) w punkt (biec pozycj
kursora). Z argumentem n, wstawia n-te slowo poprzedniego
polecenia (slowa w poprzednim poleceniu zaczynaj si od
slowa 0). Argument ujemny wstawia n-te slowo od koca
poprzedniego polecenia.
yank-last-arg (M-., M-_)
Wstawia ostatni argument poprzedniego polecenia (ostatnie
slowo poprzedniej pozycji historii). Z argumentem,
zachowuje si dokladnie tak, jak yank-nth-arg. Kolejne
wywolania yank-last-arg przesuwaj wstecz listy historii,
wstawiajc po kolei ostatni argument kadego wiersza.
shell-expand-line (M-C-e)
Interpretuj wiersz, jak czyni to powloka. Wykonuje to
aliasy i interpretacj historii, jak rownie interpretacj
slow powloki. Zobacz INTERPRETACJA HISTORII poniej.
history-expand-line (M-^)
Wykonuje interpretacj powloki w odniesieniu do biecego
wiersza. Zobacz INTERPRETACJA HISTORII poniej.
magic-space
Wykonuje interpretacj powloki w odniesieniu do biecego
wiersza i wstawia spacj. Zobacz INTERPRETACJA HISTORII
poniej.
alias-expand-line
Wykonuje interpretacj aliasow w odniesieniu do biecego
wiersza. Zobacz ALIASY powyej.
history-and-alias-expand-line
Wykonuje interpretacj historii i aliasow w odniesieniu do
biecego wiersza.
insert-last-argument (M-., M-_)
Synonim yank-last-arg.
operate-and-get-next (C-o)
Akceptuje do wykonania biecy wiersz i ciga do edycji
nastpny wzgldem biecego wiersz z historii. Argumenty s
ignorowane.
Polecenia zmiany tekstu
delete-char (C-d)
Usuwa znak w punkcie (pod kursorem). Jeeli punkt jest
pocztkiem wiersza, nie ma adnych znakow w wierszu, a
ostatni wpisany znak zostal przypisany do delete-char, to
zwraca EOF.
backward-delete-char (Rubout)
Usuwa znak przed kursorem. Jeeli podano argument
numeryczny, zachowuje usunity tekst na stosie usuni.
forward-backward-delete-char
Usuwa znak pod kursorem, chyba e kursor znajduje si na
kocu wiersza, wowczas usuwany jest znak przed kursorem.
quoted-insert (C-q, C-v)
Dodaje nastpny znak do wiersza doslownie. W ten sposob
wstawiane s 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, rownoczenie przesuwajc punkt w przod. Jeeli
punkt jest na kocu wiersza to zamienia to miejscami dwa
znaki przed punktem. Argumenty ujemne nie skutkuj.
transpose-words (M-t)
Zamienia miejscami slowo sprzed punktu ze slowem za
punktem, przesuwajc rownoczenie punkt za przesunite
sprzed niego slowo. Jeeli punkt jest na kocu wiersza to
zamienia to miejscami dwa ostanie slowa wiersza.
upcase-word (M-u)
Zamienia na wielkie litery biece (lub nastpne) slowo. Z
argumentem ujemnym zamienia na wielkie litery poprzednie
slowo, ale nie przesuwa punktu.
downcase-word (M-l)
Zamienia na male litery biece (lub nastpne) 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) biece (nastpne) slowo. Z argumentem ujemnym
zamienia na kapitaliki poprzednie slowo, ale nie przesuwa
punktu.
Usuwanie i wklejanie
kill-line (C-k)
Usuwa tekst od punktu do koca wiersza.
backward-kill-line (C-x Rubout)
Usuwa wstecz do pocztku wiersza.
unix-line-discard (C-u)
Usuwa wstecz od punktu do pocztku wiersza. Usuwany tekst
jest zachowywany na stosie usuni.
kill-whole-line
Usuwa wszystkie znaki biecego wiersza, bez wzgldu na
poloenie punktu.
kill-word (M-d)
Usuwa od punktu do koca biecego slowa, lub jeli uyte
pomidzy slowami, do koca nastpnego slowa. Granice slow s
takie same, jak uywane przez forward-word.
backward-kill-word (M-Rubout)
Usuwa slowo sprzed punktu. Granice slow s takie same, jak
uywane przez backward-word.
unix-word-rubout (C-w)
Usuwa slowo sprzed punktu, jako separatora slow uywajc
bialych znakow. Usunity tekst zachowywany jest na stosie
usuni.
delete-horizontal-space (M-\)
Usuwa wszystkie spacje i tabulatory wokol punktu.
kill-region
Usuwa tekst w biecym obszarze.
copy-region-as-kill
Kopiuje tekst obszaru do bufora usuwania.
copy-backward-word
Kopiuje slowo sprzed punktu do bufora usuwania. Granice
slow s takie same, jak dla backward-word.
copy-forward-word
Kopiuje slowo wystpujce po punkcie do bufora usuwania.
Granice slow s takie same, jak dla forward-word.
yank (C-y)
Wkleja wierzcholek stosu usuni do bufora w punkcie (w
miejscu kursora).
yank-pop (M-y)
Obraca stos usuni i wkleja nowy wierzcholek. Dziala tylko
nastpujc po yank lub yank-pop.
Argumenty numeryczne
digit-argument (M-0, M-1, ..., M--)
Dodaje t cyfr do ju skladanego argumentu lub rozpoczyna
nowy argument. M-- rozpoczyna argument ujemny.
universal-argument
Jest to inna metoda podawania argumentu. Jeeli po tym
poleceniu wystpuje jedna lub wicej cyfr, z opcjonalnym
pocztkowym znakiem minus, to cyfry te definiuj argument.
Jeeli po poleceniu wystpuj cyfry, to powtorne wykonanie
universal-argument koczy argument numeryczny, ale w
przeciwnym wypadku jest ignorowane. W przypadku
specjalnym, jeeli bezporednio po tym poleceniu wystpuje
znak nie bdcy ani cyfr ani znakiem minus, to argument
licznik dla nastpnego polecenia mnoony jest przez cztery.
Argument licznik [zwykle powtorze] wynosi pocztkowo
cztery, tote wykonanie tej funkcji po raz pierwszy nadaje
mu warto cztery, po raz drugi szesnacie, i tak dalej.
Uzupe/lnianie
complete (TAB)
Usiluje przeprowadzi uzupelnianie tekstu przed punktem.
Bash probuje uzupelniania traktujc tekst kolejno: jako
zmienn (jeeli tekst zaczyna si od $), nazw uytkownika
(jeli tekst zaczyna si od ~), nazw hosta (i jeli tekst
zaczyna si od @) lub polecenie (lcznie z aliasami i
funkcjami). Jeeli adne z powyszych nie daje dopasowania,
to probowane jest uzupelnianie nazw plikow.
possible-completions (M-?)
Pokazuje moliwe 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 zastpuje slowo, jakie ma zosta
uzupelnione pojedynczym uzupelnieniem z listy moliwych.
Powtarzane wykonanie menu-complete powoduje krokowe
przechodzenie przez list moliwych uzupelnie i wstawianie
kadego z nich po kolei (zamiast uzupelnianego slowa). Na
kocu listy uzupelnie emitowany jest sygnal dwikowy
(zaleny od ustawienia bell-style) i przywracany jest
pierwotny tekst. Argument n przesuwa n pozycji w przod
na licie dopasowa; do przesuwania si wstecz mona uy
argumentu ujemnego. Polecenie w zamierzeniu ma by
przypisane do klawisza TAB, ale domylnie nie jest
przypisane.
delete-char-or-list
Usuwa znak pod kursorem, jeli nie jest to pocztek bd
koniec wiersza (jak delete-char). Na kocu wiersza,
zachowuje si identycznie jak possible-completions. To
polecenie jest domylnie nieprzypisane.
complete-filename (M-/)
Usiluje wykona uzupelnianie nazw plikow na tekcie sprzed
kursora.
possible-filename-completions (C-x /)
Pokazuje moliwe uzupelnienia tekstu sprzed kursora,
traktujc go jak nazw pliku.
complete-username (M-~)
Usiluje wykona uzupelnianie tekstu sprzed kursora,
traktujc go jak nazw uytkownika.
possible-username-completions (C-x ~)
Pokazuje moliwe uzupelnienia tekstu sprzed kursora,
traktujc go jak nazw uytkownika.
complete-variable (M-$)
Usiluje wykona uzupelnianie tekstu sprzed kursora,
traktujc go jak zmienn powloki.
possible-variable-completions (C-x $)
Pokazuje moliwe uzupelnienia tekstu sprzed kursora,
traktujc go jak zmienn powloki.
complete-hostname (M-@)
Usiluje wykona uzupelnianie tekstu sprzed kursora,
traktujc go jak nazw hosta.
possible-hostname-completions (C-x @)
Pokazuje moliwe uzupelnienia tekstu sprzed kursora,
traktujc go jak nazw hosta.
complete-command (M-!)
Usiluje uzupelni tekst sprzed punktu, traktujc go jak
nazw polecenia. Uzupelnianie polecenia probuje dopasowa
tekst kolejno do aliasow, slow zastrzeonych, funkcji
powloki, polece wbudowanych powloki i wreszcie nazw
plikow wykonywalnych.
possible-command-completions (C-x !)
Pokazuje moliwe uzupelnienia tekstu sprzed kursora,
traktujc go jak nazw polecenia.
dynamic-complete-history (M-TAB)
Usiluje uzupelni tekst sprzed kursora, w celu
odnalezienia moliwych uzupelnie porownujc go z wierszami
listy historii.
complete-into-braces (M-{)
Wykonuje uzupelnianie nazwy pliku i wstawia list moliwych
uzupelnie ujt w nawiasy klamrowe, tak e jest ona dostpna
dla powloki (zobacz powyej Interpretacja nawias'ow).
Makra klawiaturowe
start-kbd-macro (C-x ()
Rozpoczyna zachowywanie wpisywanych znakow w biecym
makrze klawiaturowym.
end-kbd-macro (C-x ))
Zatrzymuje zachowywanie wpisywanych znakow w biecym
makrze klawiaturowym i przechowuje definicj.
call-last-kbd-macro (C-x e)
Ponownie wykonuje zdefiniowane makro klawiaturowe,
powodujc pojawianie si znakow makra tak, jakby zostaly
wpisane z klawiatury.
R'one
re-read-init-file (C-x C-r)
Odczytuje zawarto pliku inputrc i dolcza wszystkie
znalezione tam przypisania klawiszy i zmiennych.
abort (C-g)
Zaniechuje biecego polecenia edycji i emituje sygnal
dwikowy terminala (zgodnie z ustawieniami bell-style).
do-uppercase-version (M-a, M-b, M-x, ...)
Jeeli poprzedzony przedrostkiem meta znak x jest mal
liter, uruchamia plecenie, ktore jest przypisane do
odpowiedniej wielkiej litery.
prefix-meta (ESC)
Poprzed przedrostkiem meta nastpny wpisany znak. ESC f
jest rownowane Meta-f.
undo (C-_, C-x C-u)
Krokowe cofnicie operacji, pamitane odrbnie dla kadego
wiersza.
revert-line (M-r)
Cofa wszystkie zmiany wykonane na tym wierszu. Podobne do
wykonania polecenia undo wystarczajco wiele razy, by
przywroci wiersz do stanu pocztkowego.
tilde-expand (M-&)
Wykonuje interpretacj tyldy w odniesieniu do biecego
slowa.
set-mark (C-@, M-<space>)
ustawia znacznik (mark) w biecym punkcie. Jeeli podano
argument numeryczny, znacznik jest ustawiany na takiej
pozycji.
exchange-point-and-mark (C-x C-x)
Zamie punkt ze znacznikiem. Aktualna pozycja kursora
ustawiana jest na zapamietan, a dotychczasowa pozycja
zachowywana jako znacznik.
character-search (C-])
Odczytywany jest znak a punkt przesuwa si na nastpne
wystpienie tego znaku. Licznik ujemny wyszukuje
poprzednie wystpienia.
character-search-backward (M-C-])
Odczytywany jest znak a punkt przesuwa si na poprzednie
wystpienie tego znaku. Licznik ujemny wyszukuje kolejne
wystpienia.
insert-comment (M-#)
Na pocztek bieceg wiersza wstawiana jest warto zmiennej
comment-begin readline, a wiersz jest akceptowany tak,
jakby wprowadzono znak nowej linii. Domylna warto
comment-begin powoduje, e polecenie to czyni biecy wiersz
komentarzem powloki.
glob-expand-word (C-x *)
Slowo sprzed kursora traktowane jest jak wzorzec
rozwijania nazw plikow i wstawiana jest lista pasujcych
nazw, zastpujc slowo-wzorzec.
glob-list-expansions (C-x g)
Wywietlana jest lista rozwini, jakie zostalyby utworzone
przez glob-expand-word, a wiersz jest ponownie
wywietlany.
dump-functions
Wypisuje do strumienia wyjciowego readline wszystkie
funkcje i ich przypisania klawiszy. Jeeli podano argument
numeryczny, wyjcie jest formatowane w taki sposob, by
mona zrobi je czci pliku inputrc.
dump-variables
Wypisuje do strumienia wyjciowego readline wszystkie
ustawialne zmienne readline i ich wartoci. Jeeli podano
argument numeryczny, wyjcie jest formatowane w taki
sposob, by mona zrobi je czci pliku inputrc.
dump-macros
Wypisuje wszystkie sekwencje klawiszy readline przypisane
do makr i lacuchy jakie daj w wyniku. Jeeli podano
argument numeryczny, wyjcie jest formatowane w taki
sposob, by mona zrobi je czci pliku inputrc.
display-shell-version (C-x C-v)
Wywietla informacj o wersji aktualnego egzemplarza bash.
Programowalne uzupe/lnianie
Gdy nastpuje proba uzupelnienia slowa dla argumentu polecenia,
dla ktorego zdefiniowano specyfikacj uzupelniania (completion
specification, compspec) przy pomocy wbudowanego polecenia
complete (zobacz WBUDOWANE POLECENIA POW/LOKI poniej), wywolywane
s uslugi programowalnego uzupelniania.
Po pierwsze, identyfikowana jest nazwa polecenia. Jeeli dla
tego polecenia zdefiniowano compspec, to compspec jest uywane do
utworzenia listy moliwych uzupelnie slowa. Jeeli slowo
polecenia jest peln nazw ciekow, to najpierw szukane jest
compspec dla pelnej nazwy. Jeli nie zostanie odnalezione, to
nastpuje proba znalezienia compspec dla czci wystpujcej po
ostatnim ukoniku.
Po odnalezieniu compspec, jest ono uywane do utworzenia listy
pasujcych slow. Jeeli compspec nie zostalo znalezione, to
wykonywane jest domylne uzupelnianie basha, jak opisano powyej w
Uzupe/lnianie.
Na pocztek, uywane s akcje okrelone przez compspec. Zwracane s
wylcznie dopasowania poprzedzone dopasowywanym slowem. Gdy do
uzupelniania nazw plikow lub katalogow uyto opcji -f lub -d, do
filtrowania dopasowa wykorzystywana jest zmienna powloki
FIGNORE.
W nastpnej kolejnoci tworzone s ewentualne uzupelnienia okrelone
przez wzorzec rozwinicia nazw plikow opcji -G. Slowa tworzone
przez wzorzec nie musz pasowa do uzupelnianego slowa. Zmienna
powloki GLOBIGNORE nie jest uywana do filtrowania dopasowa, ale
zmienna FIGNORE jest uywana.
Nastpnie, brany jest pod uwag lacuch podany jako argument opcji
-W. Lacuch jest najpierw rozbijany przy zastosowaniu znakow ze
zmiennej specjalnej IFS jako separatorow. Honorowane jest
cytowanie powloki. Poniej kade ze slow interpretowane jest z
wykorzystaniem interpretacji nawiasow, interpretacji tyld,
podstawiania parametrow, interpretacji zmiennych i wyrae
arytmetycznych, podstawiania wynikow polece i rozwijania nazw
ciekowych, jak opisano powyej w sekcji INTERPRETACJA. Wyniki s
rozbijane z zastosowaniem regul opisanych powyej w sekcji
Podzia/l na s/lowa. Wyniki interpretacji s dopasowywane
przedrostkiem z uzupelnianym slowem, a pasujce slowa staj si
moliwymi uzupelnieniami.
Po utworzeniu tych dopasowa, wywolywana jest funkcja lub
polecenie okrelone opcjami -F i -C. Podczas wywolywania
polecenia czy funkcji, zmiennym COMP_LINE i COMP_POINT
przypisywane s wartoci, jak opisano to powyej w sekcji Zmienne
pow/loki. Jeeli wywolywana jest funkcja powloki, ustawiane s
rownie zmienne COMP_WORDS i COMP_CWORD. Kiedy wywolywana jest
funkcja czy polecenie, pierwszym argumentem staje si nazwa
polecenia, ktorego argumenty s uzupelniane, drugim argumentem --
uzupelniane slowo, a trzecim slowo poprzedzajce w wierszu polece
slowo aktualnie uzupelniane. Nie jest wykonywane adne
filtrowanie utworzonych uzupelnie stosownie do uzupelnianego
slowa. Funkcja czy polecenie maj peln swobod tworzenia dopasowa.
W pierwszej kolejnoci wywolywana jest funkcja okrelona przez -F.
Do tworzenia dopasowa moe ona korzysta z dowolnych moliwoci
powloki, lcznie z opisanym poniej poleceniem wbudowanym compgen.
Funkcja musi umieci moliwe uzupelnienia w zmiennej tablicowej
COMPREPLY.
Nastpnie, wywolywane jest polecenie okrelone opcj -C, dzialajce
w rodowisku rownowanym podstawianiu polece. Powinno ono wypisa
list uzupelnie, po jednym w wierszu, na standardowe wyjcie.
Jeeli jest to niezbdne, do utworzenia znaku nowej linii mona uy
odwroconego ukonika.
Po utworzeniu wszelkich moliwych uzupelnie, do listy tej
stosowany jest filtr okrelony opcj -X. Filtr jest takim
wzorcem, jak uywany przy rozwijaniu nazw ciekowych. Znak & we
wzorcu zastpowany jest tekstem uzupelnianego slowa. Literal &
mona otrzyma poprzedzajc go odwrotnym ukonikiem; odwrotny ukonik
zostanie usunity przed prob dopasowania. Wszystkie uzupelnienia
pasujce do wzorca bd usunite z listy. Pocztkowy ! daje
zaprzeczenie wzorca. Bd wowczas usuwane uzupelnienia nie pasujce
do wzorca.
Na koniec, do kadego elementu listy dodawane s przedrostek i
przyrostek okrelone opcjami -P i -S, a wynik zwracany jest do
kodu uzupelniania readline jako lista moliwych uzupelnie.
Jeli poprzednio zastosowane dzialania nie utworzyly adnych
dopasowa, za przy definiowaniu compspec podano opcj -o dirnames
polecenia complete, to dokonywana jest proba uzupelnienia nazwy
katalogu.
Domylnie, jeeli znaleziono compspec, to cokolwiek ono utworzy
zwracane jest do kodu uzupelniajcego jako pelny zestaw moliwych
uzupelnie. Nie s probowane domylne uzupelnienia bash, a domylne
uzupelnianie nazw ciekowych przez readline jest wylczone. Jeli
przy definiowaniu compspec podano opcj -o default polecenia
complete, to jeeli compspec nie utworzy adnych uzupelnie,
wykonane zostanie domylne uzupelnianie z readline.
HISTORIA
Jeeli wlczona jest opcja -o history wbudowanego polecenia set,
to powloka zapewnia dostp do historii polece, listy polece
poprzednio wprowadzonych. Warto zmiennej HISTSIZE
wykorzystywana jest jako liczba polece do zachowania na licie
historii. Zachowywany jest tekst ostatnich HISTSIZE polece
(domylnie 500. Powloka przechowuje kade polecenie na licie przed
podstawieniem wartoci parametrow i zmiennych (zobacz powyej
INTERPRETACJA), ale przed wykonaniem interpretacji historii, w
zalenoci od wartoci zmiennych powloki HISTIGNORE i HISTCONTROL.
Przy uruchamianiu, historia inicjowana jest z pliku o nazwie
wskazanej zmienn HISTFILE (domylnie ~/.bash_history). Plik o
nazwie wzitej z wartoci HISTFILE jest obcinany, jeli zachodzi
potrzeba, by zawieral nie wicej wierszy ni okrelono to wartoci
zmiennej HISTFILESIZE. Podczas koczenia pracy powloki
interaktywnej, ostatnie $HISTSIZE wierszy kopiowane jest z listy
historii do $HISTFILE. Jeeli wlczona jest opcja powloki
histappend (zobacz opis shopt w sekcji WBUDOWANE POLECENIA
POW/LOKI poniej), to wiersze s dodawane na koniec pliku historii,
w przeciwnym razie plik historii jest nadpisywany. Jeeli
HISTFILE nie jest ustawione lub plik historii nie daje si
zapisa, to historia nie jest zachowywana. Po zapisaniu, plik
historii jest obcinany, by nie zawieral wicej ni HISTFILESIZE
wierszy. Jeli HISTFILESIZE nie jest ustawione, to obcinanie nie
jest wykonywane.
Do edycji lub ponownego wykonania czci listy historii mona
korzysta z wbudowanego polecenia fc (zobacz WBUDOWANE POLECENIA
POW/LOKI poniej). Wbudowanego polecenia history mona uywa do
wywietlania lub zmiany listy historii i manipulacji plikiem
historii. Podczas poslugiwania si edycj wiersza polece, w kadym
z trybow edycji umoliwiajcych dostp do listy historii, dostpne s
polecenia przeszukiwania.
Powloka umoliwia kontrol nad tym, jakie polecenia s zachowywane
na licie. Mona ustawi zmienne HISTCONTROL i HISTIGNORE, co
spowoduje, e powloka bdzie zachowywa tylko podzbior
wprowadzonych polece. Opcja powloki cmdhist, jeeli jest
wlczona, powoduje, e powloka bdzie usilowa zachowa kady wiersz
polecenia wielowierszowego w tej samej pozycji historii, dodajc,
gdzie jest to niezbdne, redniki, by zachowa poprawno skladni.
Opcja powloki lithist powoduje, e powloka bdzie zachowywa
polecenia z osadzonymi znakami nowej linii zamiast rednikow.
Zobacz opis wbudowanego shopt poniej, w sekcji WBUDOWANE
POLECENIA POW/LOKI, gdzie znajdziesz informacje o ustawianiu i
kasowaniu opcji powloki.
INTERPRETACJA HISTORII
Powloka obsluguje funkcj interpretacji historii, podobn do
interpretacji historii w csh. Ta sekcja opisuje dostpne
moliwoci skladni. Funkcja ta jest domylnie wlczona dla powlok
interaktywnych i moe by wylczona przy pomocy opcji +H
wbudowanego polecenia set (zobacz poniej WBUDOWANE POLECENIA
POW/LOKI). Powloki nie-interaktywne domylnie nie wykonuj
interpretacji historii.
Interpretacja historii wprowadza slowa z listy historii do
strumienia wejciowego, ulatwiajc powtarzanie polece lub
poprawianie szybkie bldow w poprzednich poleceniach.
Interpretacja historii przeprowadzana jest bezporednio po
przeczytaniu pelnego wiersza, przed jego podzialem na slowa
przez powlok. Odbywa si w dwu czciach. Pierwsz jest okrelenie,
ktory wiersz z listy historii ma zosta uyty podczas
podstawiania. Drug stanowi wybor czci tego wiersza do wlczenia
w biecy. Wybrany z historii wiersz jest zdarzeniem (event), a
jego czci na ktorych wykonywane s dzialania s s/lowami. Dostpne
s rone modyfikatory do manipulowania wybranymi slowami. Wiersz
rozbijany jest na slowa w ten sam sposob jak podczas odczytu
wejcia, tak e kilka slow separowanych metaznakami ujtych w
cudzyslowy traktowanych jest jak jedno slowo. Interpretacja
historii wprowadzana s obecnoci znaku rozwijajcego histori,
ktorym domylnie jest !. Cytowa ten znak mog wylcznie odwrotny
ukonik (\) i pojedyncze cudzyslowy.
Kilka opcji powloki ustawianych przy pomocy shopt moe sluy do
ledzenia dzialania interpretacji historii. Jeeli opcja
histverify powloki jest wlczona (zobacz opis wbudowanego shopt)
i uywane jest readline, to podstawienia historii nie s
natychmiast przesylane do analizatora skladni (parsera) powloki.
Zamiast tego, zinterpretowany wiersz jest ponownie ladowany do
bufora edycyjnego readline w celu dalszej modyfikacji. Jeeli
wykorzystywane jest readline i wlczona jest opcja histreedit, to
zakoczone niepowodzeniem podstawienie historii zostanie ponownie
zaladowane do bufora edycyjnego readline w celu poprawienia.
Opcj -p wbudowanego polecenia history mona posluy si do
ogldnicia, co zrobi interpretacja historii przed jej
zastosowaniem. Opcji -s wbudowanego polecenia history mona uy w
celu dodania polece na koniec listy historii bez faktycznego ich
wykonania, tak e bd dostpne dla nastpnych przywola.
Powloka pozwala na kontrolowanie ronych znakow stosowanych przez
mechanizm interpretacji historii (zobacz opis histchars powyej,
w sekcji Zmienne pow/loki).
Desygnatory zdarze (Event Designators)
Desygnator zdarzenia jest odwolaniem do pozycji wiersza polece
na licie historii.
! Rozpoczyna podstawianie historii, z wyjtkiem sytuacji,
gdy wystpuje po nim odstp, znak nowej linii, = lub (.
!n Wskazuje na n-ty wiersz polece.
!-n Wskazuje na wiersz polece biecy minus n.
!! Wskazuje na poprzednie polecenie. jest to synonim `!-1'.
!/lacuch
Wskazuje na ostatnie poleceniem rozpoczynajce si od
/lacucha.
!?/lacuch[?]
Wskazuje na ostatnie polecenie zawierajce /lacuch. Koczce
? mona pomin jeli bezporednio po /lacuchu wystpuje znak
nowej linii.
^/lacuch1^/lacuch2^
Szybkie podstawianie. Powtarza ostatnie polecenie,
wymieniajc /lacuch1 na /lacuch2. Ronowanik
,,!!:s//lacuch1//lacuch/'' (zobacz poniej Modyfikatory).
!# Caly wiersz polece wpisany do tego momentu.
Desygnatory s/l'ow (Word Designators)
Desygnatory slow slu do wybierania ze zdarzenia danych slow.
Dwukropek : oddziela okrelenie zdarzenia od desygnatora slowa.
Moe by pominity jeli desygnator slowa rozpoczyna si od ^, $, *,
- lub %. Slowa numerowane s od pocztku wiersza, przy czym
pierwsze ma numer 0 (zero). Slowa s wstawiane do biecego
wiersza, rozdzielane pojedynczymi spacjami.
0 (zero)
Slowo zerowe. Dla powloki jest to slowo polecenia.
n n-te slowo.
^ Pierwszy argument. To znaczy, slowo 1.
$ Ostatni argument.
% Slowo dopasowane przez ostatnie wyszukanie `?/lacuch?'.
x-y Zakres slow; `-y' jest skroconym `0-y'.
* Wszystkie slowa procz zerowego. jest to synonim dla
`1-$'. Nie jest bldem uycie * jeli w zdarzeniu jest
tylko jedno slowo; w tym przypadku zwracany jest lacuch
pusty.
x* Skrot od x-$.
x- Skrot od x-$ podobnie jak x*, ale pomija ostatnie slowo.
jeli desygnator slowa podano bez okrelenia zdarzenia, za
zdarzenie przyjmowane jest poprzednie polecenie.
Modyfikatory
Po opcjonalnym desygnatorze slowa moe pojawi si sekwencja
jednego lub wicej poniszych modyfikatorow, kady poprzedzony
dwukropkiem `:'.
h Usuwa kocow skladow nazwy pliku, pozostawiajc tylko
pocztek.
t Usuwa wszystkie pocztkowe skladowe nazwy pliku,
pozostawiajc koniec.
r Usuwa koczcy przyrostek postaci .xxx, pozostawiajc glown
cz nazwy (basename).
e Usuwa wszystko procz kocowego przyrostka.
p Wypisuje nowe polecenie, ale go nie wykonuje.
q Cytuje podstawiane slowa, zabezpieczajc je przed dalszym
podstawianiem.
x Cytuje podstawiane slowa jak q, ale rozbija na slowa w
miejscach odstp'ow i znakow nowej linii.
s/stary/nowy/
Zastpuje nowym pierwsze wystpienie starego w wierszu
zdarzenia. Zamiast / moe zosta uyty dowolny ogranicznik.
Kocowy ogranicznik jest opcjonalny jeeli jest ostatnim
znakiem wiersza zdarzenia. Separator moe by cytowany w
nowym i starym przy pomocy pojedynczego odwrotnego
ukonika. Jeeli w nowym pojawia si &, to jest zastpowany
starym. Pojedynczy odwrotny ukonik bdzie cytowal &.
Jeeli stary jest pusty, to ustawiany jest na ostatni
podstawiany stary lub, jeli nie bylo poprzednich
podstawie historii, ostatni /lacuch w wyszukiwaniu
!?/lacuch[?].
& Powtarza poprzednie podstawienie.
g Powoduje, e zmiany zostan zastosowane do calego wiersza
zdarzenia. Uywany w polczeniu z `:s' (np.
`:gs/old/new/') lub `:&'. Jeli uyty z `:s', to zamiast /
mona posluy si dowolnym separatorem, a ostatni separator
jest opcjonalny jeeli jest ostatnim znakiem wiersza
zdarzenia.
WBUDOWANE POLECENIA POW/LOKI
Jeli nie podano inaczej, kade z polece wbudowanych opisanych w
niniejszej sekcji jako akceptujce opcje poprzedzone - akceptuje
rownie symbol -- okrelajcy koniec opcji.
: [argumenty]
Bez efektow; polecenie to nie robi niczego poza
interpretacj argument'ow i wykonaniem ewentualnych
podanych przekierowa. Zwracany jest zerowy kod
zakoczenia.
. plik [argumenty]
source plik [argumenty]
Odczytuje i wykonuje polecenia z zadanego pliku w
aktualnym rodowisku powloki i zwraca kod zakoczenia
ostatniego wykonanego polecenia z tego pliku. Jeeli
nazwa pliku nie zawiera ukonika, to do znalezienia
katalogu go zawierajcego uywana jest zmienna PATH. Plik
poszukiwany w PATH nie musi by wykonywalny. Jeli bash
nie jest w trybie posix, wowczas jeeli nie znaleziono
pliku w PATH, to przeszukiwany jest katalog biecy. Jeli
we wbudowanym poleceniu shopt wylczona jest opcja
sourcepath, to PATH nie jest przeszukiwane. jeli podano
jakie argumenty, to staj si one parametrami pozycyjnymi
podczas wykonywania pliku. W przeciwnym razie argumenty
pozycyjne pozostaj bez zmian. Kod zakoczenia jest kodem
ostatniego zakoczonego przez skrypt polecenia (0 jeli nie
wykowano adnego polecenia), a falszem jeeli nie
znaleziono pliku lub nie mona go odczyta.
alias [-p] [nazwa[=warto] ...]
Alias bez argumentow bd z opcj -p wypisuje na
standardowym wyjciu list aliasow w postaci alias
nazwa=warto. Jeli nie dostarczono argumenty, to
definiowany jest alias (synonim) dla kadej nazwy, dla
ktorej podano warto. Pocztkowa spacja w wartoci
powoduje, e podczas interpretacji aliasu nastpne slowo
bdzie sprawdzane na podstawianie aliasow. Dla kadej
nazwy z listy argumentow, dla ktorej nie podano wartoci,
wypisywana jest nazwa i warto aliasu. Alias zwraca
prawd, chyba e podano nazw, dla ktorej nie zostal
zdefiniowany aden alias.
bg [spec_zad]
Wznawia w tle zawieszone zadanie spec_zad, tak jakby
zostalo ono uruchomione z &. Jeli spec_zad nie wystpuje,
to uywane jest biece zadanie, okrelone tak, jak je
pojmuje powloka. bg spec_zad zwraca 0, chyba e
uruchomiono je przy wylczonej kontroli zada (job control)
lub uruchomiono z wlczon kontrol zada, jeli nie
znaleziono spec_zad lub uruchomiono bez kontroli zada.
bind [-m keymap] [-lpsvPSV]
bind [-m keymap] [-q funkcja] [-u funkcja] [-r sekw_klaw]
bind [-m keymap] -f plik
bind [-m keymap] -x sekw_klaw:polec_pow/loki
bind [-m keymap] sekw_klaw:nazwa_funkcji
Wywietla biece ustawienia przypisa (bindings) klawiszy i
funkcji readline lub przypisuje sekwencj klawiszy to
funkcji lub makra readline. Skladnia tych przypisa jest
identyczna jak dla .inputrc, ale kade z przypisa musi by
przeslane jako osobny argument; np., '"\C-x\C-r":
re-read-init-file'. Opcje, jeli je podano, maj nastpujce
znaczenie:
-m keymap
Wykorzystuje keymap jako map klawiszy, do ktorej
maj by zastosowane nastpne przypisania.
Akceptowanymi nazwami map klawiszy s emacs,
emacs-standard, emacs-meta, emacs-ctlx, vi,
vi-move, vi-command i vi-insert. vi rownowane
jest vi-command; emacs jest rownowane
emacs-standard.
-l Podaje nazwy wszystkich funkcji readline.
-p Wywietla nazwy funkcji i przypisania w taki
sposob, e mog by ponownie odczytane.
-P Podaje biece przypisania i nazwy funkcji readline.
-v Wywietla nazwy i wartoci zmiennych readline w taki
sposob, e mog by ponownie odczytane.
-V Podaje biece nazwy i wartoci zmiennych readline.
-s Wywietla sekwencje klawiszy readline przypisane do
makr i lacuchy jakie one wysylaj w taki sposob, e
mog by ponownie odczytane.
-S Wywietla sekwencje klawiszy readline przypisane do
makr i lacuchy jakie one wysylaj.
-f plik
Czyta przypisania klawiszy z pliku.
-q funkcja
Podaje, ktore klawisze wywoluj podan funkcj.
-u funkcja
Odwoluje przypisania wszystkich klawiszy
przypisanych do danej funkcji.
-r sekw_klaw
Usuwa biece przypisania dla sekwencji klawiszy.
-x sekw_klaw:polec_pow/loki
Powoduje, e za kadym naciniciem sekwencji klawiszy
zostanie wykonane polecenie pow/loki.
Zwracana jest warto 0, chyba e podano nierozpoznan opcj
lub pojawil si bld.
break [n]
Opuszcza ptl for, while, until lub select. Jeeli podano
n, przerywa dzia/lanie do n-tego poziomu. n musi by >= 1.
Jeeli n jest wiksze od liczby obejmujcych polecenie ptli,
to koczone s wszystkie obejmujce ptle. Wartoci zwracan
jest 0, chyba e powloka nie wykonuje ptli podczas
wykonania break.
builtin wbudowane [argumenty]
Wykonuje zadane polecenie wbudowane powloki, przesylajc
mu argumentyizwracajegokodzakoczenia. Przydatne podczas
definiowania funkcji o nazwie tosamej z nazw wbudowanego
polecenia powloki, zachowujc funkcjonalno polecenia
wbudowanego wewntrz funkcji. Wbudowane cd jest
powszechnie redefiniowane w ten sposob. Kodem zakoczenia
jest falsz jeli wbudowane nie jest wbudowanym poleceniem
powloki.
cd [-LP] [katalog]
Zmienia biecy katalog roboczy na dir. Zmienna HOME jest
domylnym katalogiem. Zmienna CDPATH definiuje ciek
przeszukiwa dla katalogu zawierajcego katalog.
Alternatywne nazwy katalogow w CDPATH rozdzielane s
dwukropkiem (:)> Pusta nazwa katalogu w CDPATH jest tym
samym, co katalog biecy, tj. ,,.''. Jeeli katalog
rozpoczyna si ukonikiem (/), to CDPATH nie jest uywane.
Opcja -P nakazuje uycie fizycznej struktury katalogow
zamiast podania za dowizaniami symbolicznymi (zobacz te
opcja -P wbudowanego polecenia set); Opcja -L wymusza
podanie za dowizaniami symbolicznymi. Argument - jest
rownowany $OLDPWD. Wartoci zwracan jest prawda jeli
pomylnie zmieniono katalog; w przeciwnym przypadku falsz.
command [-pVv] polecenie [arg ...]
Uruchamia polecenie z argumentami zakazujc zwyklego
wyszukiwania funkcji przez powlok. Wykonywane s wylcznie
polecenia wbudowane i polecenia znalezione w PATH. Jeeli
podano opcj -p, wyszukiwanie polecenia wykonywane jest
przy uyciu domylnej PATH, ktora gwarantuje znalezienie
wszystkich standardowych narzdzi. Jeli uyto albo opcji
-V albo -v, to wypisywany jest opis polecenia. Opcja -v
powoduje, e zostanie wywietlone pojedyncze slowo
wskazujce polecenie lub nazw pliku, uyte do wywolania
polecenia; opcja -V tworzy bardziej rozgadany opis.
Jeeli podano opcj -V lub -v, to kodem zakoczenia jest 0
gdy odnaleziono polecenie, za 1 gdy nie. Jeli nie podano
adnej z tych opcji i pojawil si bld lub nie mona znale
polecenia, to kod zakoczenia wynosi 127. W przeciwnym
wypadku kodem zakoczenia wbudowanego polecenia command
jest kod zakoczenia polecenia.
compgen [opcja] [s/lowo]
Tworzy moliwe dopasowania uzupelnie dla s/lowa zgodnie z
opcjami, ktore mog by dowolnymi z opcji akceptowanych
przez wbudowane polecenie complete, z wyjtkiem -p i -r, i
wypisuje dopasowania na standardowe wyjcie. Przy
stosowaniu opcji -F lub -C, rone zmienne powloki
ustawiane przez uslugi programowalnego uzupelniania, gdy
s dostpne, nie bd mie uytecznych wartoci.
Dopasowania bd tworzone w ten sam sposob, jakby kod
uzupelniania programowalnego tworzyl je wprost ze
specyfikacji uzupelniania z tymi samymi flagami. Jeeli
podano s/lowo, to wywietlone zostan wylcznie uzupelnienia
do pasujce.
Wartoci zwracan jest prawda, chyba e podano niepoprawn
opcj lub nie zostaly utworzone adne dopasowania.
complete [-abcdefgjkvu] [-o opcjacomp] [-A akcja] [-G wzglob]
[-W listas/l'ow] [-P przedrostek] [-S przyrostek]
[-X wzfiltr] [-F funkcja] [-C polecenie] nazwa [nazwa
...]
complete -pr [nazwa ...]
Okrela, w jaki sposob bd uzupelniane argumenty dla kadej
z nazw. Jeeli podano opcj -p, lub nie podano adnych
opcji, to wypisywane s istniejce specyfikacje
uzupelniania - w sposob, ktory pozwala na ich ponowne
wykorzystanie jako wejcia. Opcja -r usuwa specyfikacj
uzupelniania dla kadej z nazw, lub jeli nazw nie podano,
wszystkie specyfikacje uzupelniania.
Proces stosowania tych specyfikacji uzupelnie podczas
prob uzupelniania slow omowiono powyej w sekcji
Programowalne uzupe/lnianie.
Pozostale opcje, jeli je podano, maj niej opisane
znaczenie. Argumenty opcji -G, -W i -X (i, jeli to
niezbdne, -P i -S) powinny by cytowane dla ochrony przed
interpretacj jaka wystpi zanim zostanie wywolane
polecenie complete.
-o opcjacomp
Warto opcjacomp reguluje kilka aspektow
zachowania si compspec wykraczajcych poza zwykle
tworzenie uzupelnie. opcjacomp przyjmuje jedn z
wartoci:
default Stosuje domylne uzupelnianie readline
jeli compspec nie utworzy adnych
dopasowa.
dirnames
Wykonuje uzupelnianie nazw katalogow jeli
compspec nie utworzy adnych dopasowa.
filenames
Powiadamia readline, e compspec tworzy
nazwy plikow, zatem moe wykona
przetwarzanie specyficzne dla takich nazw
(jak dodanie ukonika do nazw katalogow
czy usunicie kocowych spacji).
Zaprojektowane do stosowania z funkcjami
powloki.
-A akcja
akcja moe by jedn z poniszych, tworzcych list
moliwych dopasowa:
alias Nazwy aliasow. Mona te poda jako -a.
arrayvar
Nazwy zmiennych tablicowych.
binding Nazwy przypisa klawiszy readline.
builtin Nazwy wbudowanych polece powloki. Mona te
poda jako -b.
command Nazwy polece. Mona te poda jako -c.
directory
Nazwy katalogow. Mona te poda jako -d.
disabled
Nazwy wylczonych polece wbudowanych
powloki.
enabled Nazwy wlczonych polece wbudowanych
powloki.
export Nazwy wyeksportowanych zmiennych powloki.
Mona te poda jako -e.
file Nazwy plikow. Mona te poda jako -f.
function
Nazwy funkcji powloki.
group Nazwy grup. Mona te poda jako -g.
helptopic
Tematy pomocy akceptowane przez wbudowane
polecenie help.
hostname
Nazwy hostow, pobrane z pliku okrelonego
przez zmienn powloki HOSTFILE.
job Nazwy zada, jeeli aktywne jest sterowanie
zadaniami. Mona te poda jako -j.
keyword Zastrzeone slowa powloki. Mona te poda
jako -k.
running Nazwy dzialajcych zada, jeeli aktywne
jest sterowanie zadaniami.
setopt Dozwolone argumenty opcji -o polecenia
wbudowanego set.
shopt Nazwy opcji powloki, takie, jakie
akceptuje polecenie wbudowane shopt.
signal Nazwy sygnalow.
stopped Nazwy zatrzymanych zada, jeli aktywne
jest sterowanie zadaniami.
user Nazwy uytkownikow. Mona te poda jako -u.
variable
Nazwy wszystkich zmiennych powloki. Mona
te poda jako -v.
-G wzglob
Wzorzec rozwijania nazw plikow wzglob jest
rozwijany, tworzc list moliwych uzupelnie.
-W listas/l'ow
listas/l'ow jest rozbijana przy zastosowaniu znakow
ze zmiennej specjalnej IFS jako separatorow, a
kade ze slow wynikowych jest interpretowane.
Moliwe uzupelnienia s elementami listy wynikowej,
pasujcymi do uzupelnianego slowa.
-C polecenie
polecenie wykonywane jest w rodowisku podpowloki,
a jego wyjcie uywane jest jako moliwe
uzupelnienia.
-F funkcja
Funkcja powloki funkcja wykonywana jest w biecym
rodowisku powloki. Po jej zakoczeniu, moliwe
uzupelnienia pobierane s z wartoci zmiennej
tablicowej COMPREPLY.
-X wzfiltr
wzfiltr jest wzorcem uywanym do rozwijania nazw
plikow. Stosowany jest do listy moliwych
uzupelnie utworzonej przez poprzedzajce go opcje
i argumenty, a kade pasujce do niego uzupelnienie
jest usuwane z listy. Pocztkowy ! w wzfiltr
powoduje negacj wzorca; usuwane s wowczas
uzupelnienia nie pasujce do wzfiltr.
-P przedrostek
Po zastosowaniu wszystkich innych opcji na
pocztku kadego moliwego uzupelnienia jest
dodawany przedrostek.
-S przyrostek
Po zastosowaniu wszystkich innych opcji na kocu
kadego moliwego uzupelnienia jest dolczany
przyrostek.
Wartoci zwracana jest prawda, chyba e podano niepoprawn
opcj, podano bez argumentu nazwa opcj inn ni -p lub -r,
usilowano usun specyfikacj uzupelniania dla nazwy, dla
ktorej nie istnieje adna specyfikacja, albo te podczas
dodawania specyfikacji uzupelniania wystpil bld.
continue [n]
Wznawia nastpn iteracj obejmujcej je ptli for, while,
until lub select. Jeeli podano n, wznawia n-t obejmujc
ptl. n musi by >= 1. Jeeli n jest wiksze ni liczba
obejmujcych ptli, to wznawiana jest ostatnia z ptli
(,,najwysza''). Warto zwracana wynosi 0, chyba e powloka
nie wykonuje ptli podczas wykonywania continue.
declare [-afFirx] [-p] [nazwa[=warto]]
typeset [-afFirx] [-p] [nazwa[=warto]]
Deklaruje zmienne i/lub nadaje im atrybuty. Jeli nie
podano adnych nazw, wywietla wartoci zmiennych. Opcja -p
bdzie wywietla atrybuty i wartoci kadej nazwy. Gdy
uywane jest -p, ignorowane s dodatkowe opcje. Opcja -F
zabrania wywietlania definicji funkcji; wypisywane s
tylko nazwy i atrybuty funkcji. Opcja -F implikuje -f.
Poniszych opcji mona uy do ograniczenia wynikow do
zmiennych o okrelonym atrybucie lub do nadania zmiennym
atrybutow:
-a Kada z nazw jest zmienn tablicow (zobacz Tablice
powyej).
-f Uywa wylcznie nazw funkcji.
-i Zmienna jest traktowana jak calkowita; gdy
zmiennej jest przypisywana warto, wykonywana jest
interpretacja wyrae arytmetycznych (zobacz
OBLICZANIE WYRAE ARYTMETYCZNYCH).
-r Powoduje, e dane nazwy staj si tylko-do-odczytu
(readonly). Nazwom tym nie mona przypisa wartoci
nastpnymi poleceniami przypisania. Nie mona te
ich usun za pomoc unset.
-x Zaznacza nazw do wyeksportowania przez rodowisko
do kolejnych polece.
Uycie `+' zamiast `-' wylcza atrybut, z wyjtkiem tego, e
+a nie moe by uywane do niszczenia zmiennej tablicowej.
Uyte w funkcji, powoduj, e kada z nazw staje si lokalna,
jak przy pomocy polecenia local. Zwracana jest warto 0,
chyba e napotkano niepoprawn opcj, prob zdefiniowania
funkcji przy pomocy ,,-f foo=bar'', przypisania wartoci
zmiennej readonly, przypisania wartoci zmiennej
tablicowej bez uycia skladni przypisania zloonego (zobacz
Tablice powyej), jedna z nazw nie jest poprawn nazw
zmiennej powloki, usilowano wylczy status readonly dla
zmiennej tylko do odczytu, wylczy status tablicy dla
zmiennej tablicowej albo probowano wywietli nieistniejc
funkcj przy pomocy -f.
dirs [-clpv] [+n] [-n]
Bez opcji wywietla list aktualnie zapamitanych katalogow.
Domylnie wywietlana jest ona w pojedynczym wierszu, z
nazwami katalogow rozdzielonymi spacjami. Katalogi
dodawane s do listy poleceniem pushd polecenie popd usuwa
pozycje z listy.
+n Wywietla nt pozycj liczc od lewej na licie
pokazywanej przez dirs przy wywolaniu bez opcji;
pocztkow jest zero.
-n Wywietla nt pozycj liczc od prawej na licie
pokazywanej przez dirs przy wywolaniu bez opcji;
pocztkow jest zero.
-c Czyci stos katalogow usuwajc wszystkie jego
pozycje.
-l Tworzy dluszy listing; domylnie format listingu
posluguje si tyld do oznaczania katalogu domowego.
-p Wypisuje stos katalogow po jednej pozycji na
wiersz.
-v Wypisuje stos katalogow po jednej pozycji na
wiersz, poprzedzajc kad z nich jej pozycj
(indeksem) w stosie.
Wartoci zwracan jest 0, chyba e podano nieprawidlow opcj
lub n wskazuje poza koniec stosu katalogow.
disown [-ar] [-h] [zadanie ...]
Bez opcji, kade z podanych zada usuwane jest z tablicy
zada aktywnych. Jeli uyto opcji -h, kade zadanie nie
jest usuwane z tablicy, ale jest jako takie zaznaczane,
tak e do zadania nie jest wysylany sygnal SIGHUP jeli
powloka otrzymuje SIGHUP. Jeli nie podano zadania i nie
uyto ani opcji -a ani -r, to uywane jest zadanie biece.
Jeeli podano zadanie, opcja -a oznacza usunicie lub
zaznaczenie wszystkich zada; opcja -r bez argumentu
zadania ogranicza akcj do dzialajcych zada. Wartoci
zwracan jest 0, chyba e zadanie nie okrela poprawnego
zadania.
echo [-neE] [argument ...]
Wywietla argumenty, rozdzielone spacjami, zakoczone
znakiem nowej linii. Kodem zakoczenia jest zawsze 0.
Jeeli podano -n, to nie jest wysylany koczcy znak nowej
linii. Jeeli podano opcj -e, wlczana jest interpretacja
podanych niej znakow specjalnych. Opcja -E wylcza
interpretacj tych znakow, nawet na systemach, gdzie s one
domylnie interpretowane. Do dynamicznego sprawdzania,
czy echo interpretuje domylnie te znaki, czy nie, sluy
opcja powloki xpg_echo. echo nie interpretuje -- jako
oznaczenia koca opcji. echo interpretuje nastpujce
sekwencje specjalne:
\a dzwonek (alert)
\b backspace
\c pomi koczcy znak nowej linii
\e znak escape
\f wysuw strony (form feed)
\n znak nowej linii (new line)
\r powrot karetki (carriage return)
\t tabulacja pozioma (horizontal tab)
\v tabulacja pionowa (vertical tab)
\\ odwrotny ukonik (backslash)
\nnn omiobitowy znak, ktorego wartoci jest osemkowa
liczba nnn (jedna do trzech cyfr)
\xHH omiobitowy znak, ktorego wartoci jest szesnastkowa
liczba nnn (jedna lub dwie cyfry szesnastkowe)
enable [-adnps] [-f plik] [nazwa ...]
Wlcza i wylcza wbudowane polecenia powloki. Wylczenie
polece wbudowanych umoliwia wykonanie polecenia dyskowego
majcego t sam nazw, co wbudowane, bez podawania jego
pelnej nazwy ciekowej, mimo i powloka normalnie szuka
polece wbudowanych przed poleceniami dyskowymi. Jeeli
posluono si opcj -n, wylczana jest kada z nazw; w
przeciwnym razie nazwy s w/lczone. Na przyk/lad, chcc uy
pliku binarnego test znalezionego przez PATH zamiast
wersji wbudowanej w powlok, naley uruchomi ,,enable -n
test''. Opcja -f oznacza zaladowanie nowego polecenia
wbudowanego nazwa z obiektu dzielonego (shared object)
plik, na systemach obslugujcych dynamiczne ladowanie.
Opcja -d usunie polecenie wbudowane zaladowane poprzednio
przez -f. Jeeli nie podano adnych argumentow nazwa lub
jeli podano opcj -p, wypisywana jest lista polece
wbudowanych powloki. Bez innych argumentow opcyjnych,
lista ta sklada si ze wszystkich wlczonych polece
wbudowanych. Jeli podano -n, wypisywane s tylko wylczone
polecenia wbudowane. Jeeli podano -a, wypisywana lista
zawiera wszystkie polecenia wbudowane, ze wskazaniem przy
kadym czy jest ono wlczone czy te nie. Jeeli podano -s,
wyjcie ograniczone jest do POSIXowych ,,specjalnych''
polece wbudowanych. Wartoci zwracan jest 0, chyba e
nazwa nie jest poleceniem wbudowanym powloki lub wystpil
bld podczas ladowania nowego polecenia wbudowanego z
obiektu dzielonego.
eval [argument ...]
Argumenty s czytane i lczone w pojedyncze polecenie.
Polecenie to jest nastpnie odczytywane i wykonywane przez
powlok, za jego kod zakoczenia jest zwracany jako warto
eval. Jeeli nie na adnych argument'ow, lub wszystkie
argumenty s puste, eval zwraca 0.
exec [-cl] [-a nazwa] [polecenie [argumenty]]
Jeeli podano polecenie, zastpuje ono powlok. Nie
tworzony jest aden nowy proces. Argumenty staj si
argumentami polecenia. Jeli podano opcj -l, umieszcza
kresk na pocztku zerowego argumentu przesylanego do
polecenia. Tak samo, jak robi to login(1). Opcja -c
powoduje, e polecenie zostanie wykonane z pustym
rodowiskiem. Jeeli podano -a, powloka przesyla do
wykonywanego polecenia nazw jako zerowy argument. Jeeli
polecenie z jakiego powodu nie moe zosta wykonane, to
powloka nie-interaktywna koczy prac, chyba e wlczona jest
opcja powloki execfail, wowczas zwraca niepowodzenie.
Powloka interaktywna zwraca niepowodzenie jeli plik nie
moe zosta wykonany. Jeeli nie podano polecenia,
przekierowania skutkuj w biecej powloce, a kodem
zakoczenia jest 0. W przypadku bldu przekierowania kod
zakoczenia wynosi 1.
exit [n]
Powoduje, e powloka koczy prac z kodem rownym n. Jeli
pominito n, kodem zakoczenia jest kod ostatniego
wykonanego polecenia. Przed kocem pracy powloki
wykonywane jest przechwycenie sygnalu EXIT.
export [-fn] [nazwa[=s/lowo]] ...
export -p
Podane nazwy zaznaczane s do automatycznego
wyeksportowania do rodowiska nastpnych wykonywanych
polece. Jeli podano opcj -f, to nazwy odnosz si do
funkcji. Jeeli nie podano adnych nazw lub jeeli podano
opcj -p, to wypisywana jest lista wszystkich
eksportowanych w tej powloce nazw. Opcja -n powoduje
usunicie cechy eksportowania z podanych zmiennych.
export zwraca zerowy kod zakoczenia, chyba e napotkano
nieprawidlow opcj, jedna z nazw nie jest poprawn nazw
zmiennej powloki lub podano -f z nazw, ktora nie jest
funkcj.
fc [-e nazwa_e] [-nlr] [pierwsze] [ostatnie]
fc -s [wzorzec=zastpienie] [polecenie]
Polecenie poprawiania (Fix Command). W pierwszej
postaci, z listy historii wybierany jest zakres polece od
pierwszego do ostatniego. Pierwsze i ostatnie mog by
podawane jako lacuch (do odnalezienia ostatniego
polecenia rozpoczynajcego si tym lacuchem) lub jako
liczba (indeks w licie historii, gdzie liczba ujemna
uywana jest jako offset od numeru biecego polecenia),
Jeeli nie okrelono ostatniego, to jest ono ustawiane na
biece polecenie w przypadku listowania (tak e ,,fc -l
-10'' wypisuje ostatnich 10 polece) i na pierwsze w
pozostalych przypadkach. Jeeli nie okrelono pierwszego,
polecenia to jest ono ustawiane na poprzednie polecenie w
przypadku edycji a na -16 przy listowaniu.
Opcja -n wstrzymuje wywietlanie numerow polece podczas
listowania. Opcja -r odwraca kolejno polece. Jeeli
podano opcj -l, to polecenia listowane s na standardowym
wyjciu. W przeciwnym razie dla pliku zawierajcego te
polecenia wywolywany jest edytor podany przez nazwa_e.
Jeeli nie podano nazwa_e, uywana jest warto FCEDIT, a
warto EDITOR jeli nie ustawiono FCEDIT. Jeeli nie
ustawiono adnej z nich uywany, jest vi Po zakoczeniu
edycji, wysylane edytowane polecenia s wywietlane przez
echo i wykonywane.
W drugiej postaci, polecenie jest ponownie wykonywane po
kadej wymianie wystpienia wzorca przez zastpienie.
Przydatnym aliasem do wykorzystania z t form jest ,,r=fc
-s'', tak, e napisanie ,,r cc'' uruchamia ostatnie
polecenie rozpoczynajce si od ,,cc'' a napisanie ,,r''
ponownie wykonuje ostatnie polecenie.
Jeeli uyta zostala pierwsza posta, to wartoci zwracan
jest 0, chyba e napotkano nieprawidlow opcj lub pierwszy
albo ostatni okrelaj wiersze historii spoza zakresu.
Jeeli podano opcj -e, wartoci zwracan jest warto
ostatniego wykonanego polecenia lub niepowodzenie jeli
pojawil si bld tymczasowego pliku polece. Jeeli uyta
zostala druga posta, to zwracanym kodem jest kod ponownie
wykonanego polecenia, chyba e polecenie nie okrela
poprawnego wiersza polece -- wowczas fc zwraca porak.
fg [zadanie]
Wznawia zadanie na pierwszym planie i czyni je zadaniem
biecym. Jeeli nie podano zadania, uywane jest biece
zadanie w pojciu powloki. Wartoci zwracan jest warto
polecenia umieszczonego na pierwszym planie, lub poraka
jeeli fb uruchomiono przy wylczonej kontroli zada, lub
uruchomiono je przy wlczonej kontroli zada, ale zadanie
nie okrela prawidlowego zadania lub zadanie okrela
zadanie, ktore zostalo uruchomione bez kontroli zada.
getopts /lacuch_opcji nazwa [argumenty]
getopts uywane jest przez procedury powloki do analizy
parametrow pozycyjnych. /lacuch opcji zawiera znaki
opcji, jakie maj by rozpoznawane; jeeli po znaku wystpuje
dwukropek, to oczekuje si, e opcja bdzie posiada
argument, ktory powinien by od niej oddzielony bialym
znakiem. Jako znaki opcji mog wystpi dwukropek i znak
zapytania. Przy kadym wywolaniu getopts umieszcza nastpn
opcj w zmiennej powloki nazwa, inicjujc nazw jeli nie
istniala. Indeks nastpnego argumentu do przetwarzania
umieszczany jest w zmiennej OPTIND. OPTIND inicjowany
jest na 1 za kadym razem, gdy wywolywana jest powloka lub
skrypt powloki. Gdy opcja wymaga argumentu, getopts
umieszcza go w zmiennej OPTARG. Powloka nie resetuje
OPTIND automatycznie; musi by on resetowany rcznie
pomidzy wielokrotnymi odwolaniami do getopts w tym samym
wywolaniu powloki, jeli uywany ma by nowy zestaw
parametrow.
Po napotkaniu koca opcji, getopts koczy prac zwracajc
warto wiksz od zera. OPTIND ustawiane jest na indeks
pierwszego argumentu nie bdcego opcj, za nazwa ustawiana
jest na ?.
getopts normalnie analizuje parametry pozycyjne, ale jeli
w argumentach, podano wicej argumentow, to getopts
przetwarza je zamiast parametrow pozycyjnych.
getopts moe zglasza bldy na dwa sposoby. Jeeli pierwszym
znakiem /lacucha opcji jest dwukropek, to stosowane jest
ciche (silent) zglaszanie bldow. Przy zwyklej pracy
komunikaty diagnostyczne wypisywane s przy napotkaniu
nieprawidlowych opcji lub brakujcych argumentow opcji.
Jeeli zmienna OPTERR ustawiona jest na 0, nie bd
wywietlane adne komunikaty bldow, nawet jeli pierwszym
znakiem /lacucha opcji nie jest dwukropek.
Przy napotkaniu nieprawidlowej opcji getopts umieszcza ?
w nazwie i, jeli nie pracuje w trybie cichym, wypisuje
komunikat bldu i kasuje OPTARG. Jeeli getopts pracuje w
trybie cichym, to znaleziony znak opcji umieszczany jest
w OPTARG i nie jest wypisywany aden komunikat
diagnostyczny.
Jeli nie znaleziono wymaganego argumentu, a getopts nie
pracuje w trybie cichym, w nazwa umieszczany jest znak
zapytania (?), kasowane jest OPTARG i wywietlany jest
komunikat bldu. Jeeli getopts pracuje w trybie cichym,
to w nazwie umieszczany jest dwukropek (:), a OPTARG
ustawiane jest na znaleziony znak opcji.
getopts zwraca prawd, jeli znaleziono okrelon lub nie
okrelon opcj. Zwraca falsz jeeli napotkano koniec opcji
lub pojawil si bld.
hash [-r] [-p plik] [-t] [nazwa]
Dla kadej nazwy okrelana i zapamitywana jest pelna nazwa
plikowa polecenia wyszukanego w katalogach $PATH . Jeeli
podano opcj -p, nie jest wykonywane przeszukanie cieki, a
plik uywane jest jako pelna nazwa pliku polecenia. Opcja
-r powoduje, e powloka zapomina wszystkie zapamitane
wczeniej miejsca. Jeli podano opcj -t, to wypisywana
jest odpowiadajca nazwie pelna nazwa pliku. Jeeli przy
wicej ni jednym argumencie nazwy podano -t, to przed kad
przechowywan peln nazw wypisywana jest nazwa. Jeeli nie
podano adnych argumentow, to wypisywana jest informacja o
zapamitanych poleceniach. Kodem zwracanym jest prawda,
chyba e nie odnaleziono nazwy lub podano nieprawidlow
opcj.
help [-s] [wzorzec]
Wywietla pomocne informacje o poleceniach wbudowanych.
Jeeli podano wzorzec, to help daje szczegolow pomoc
dotyczc wszystkich polece pasujcych do wzorca; w
przeciwnym razie wypisywana jest pomoc dla wszystkich
polece wbudowanych i struktur sterujcych powloki. Opcja
-s ogranicza wywietlan informacj do krotkiego opisu
skladni. Zwracany jest kod 0, chyba e adne z polece nie
pasuje do wzorca.
history [n]
history -c
history -d offset
history -anrw [plik]
history -p arg [arg ...]
history -s arg [arg ...]
Bez adnych opcji, wywietla list historii polece z
numerami wierszy. Wiersze ukazane z * zostaly zmienione.
Argument n pokazuje jedynie ostatnich n wierszy. Jeeli
podano plik, to uywany jest on jako nazwa pliku historii;
jeli nie, to uywana jest warto HISTFILE. Opcje, jeeli je
podano, maj nastpujce znaczenie:
-c Czyci list historii usuwajc wszystkie jej pozycje.
-d offset
Usuwa wpis historii z pozycji offset.
-a Dodaje ,,nowe'' wiersze (wprowadzone od pocztku
biecej sesji bash) do pliku historii.
-n Wczytuje do biecej listy wiersze jeszcze nie
przeczytane z pliku historii. S to wiersze
dolczone do pliku historii od chwili rozpoczcia
biecej sesji pracy bash.
-r Czyta zawarto pliku historii i posluguje si ni
jako biec list historii.
-w Zapisuje biec list do pliku historii, nadpisujc
jego zawarto.
-p Na zadanych argumentach wykonuje podstawianie
historii (history substitution). Wywietla wyniki
na standardowym wyjciu. Nie zachowuje wynikow na
licie. Kady z argument'ow musi by cytowany, by
wylczy normaln interpretacj historii.
-s Zachowuje argumenty na licie historii jako
pojedyncz pozycj. Przed dodaniem argument'ow z
listy usuwane jest ostatnie polecenie.
Wartoci zwracan jest 0, chyba e napotkano nieprawidlow
opcj lub podczas odczytu czy zapisu pliku historii
pojawil si bld, podano niepoprawny argument offset opcji
-d, lub nie powiodla si interpretacja historii podanej
jako argument -p.
jobs [-lnprs] [ zadanie ... ]
jobs -x polecenie [ argumenty ... ]
Pierwsza posta podaje aktywne zadania. Opcje maj
nastpujce znaczenie:
-l Oprocz zwyklej informacji podaje identyfikatory
procesow.
-p Listuje tylko ID procesu lidera grupy procesow
zadania.
-n Wywietla wylcznie informacj o zadaniach, ktore
zmienily status od chwili, gdy uytkownik byl
ostatnio powiadamiany o ich statusie.
-r Ogranicz wyniki do zada pracujcych.
-s Ogranicz wyniki do zada zatrzymanych.
Jeeli podano zadanie, wyniki ograniczane s do informacji
o tym zadaniu. Kodem zwracanym jest 0, chyba e napotkano
nieprawidlow opcj lub podano nieprawidlowe zadanie.
Jeeli podano opcj -x, to jobs zastpuje wszelkie zadania
znalezione w poleceniu lub argumentach odpowiednim ID
grupy procesow, wykonuje polecenie przesylajc mu
argumenty, i zwraca jego kod zakoczenia.
kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
kill -l [sigspec | exit_status]
Wysyla sygnaly okrelony przez sigspec lub signum do
procesu okrelonego przez pid lub jobspec. sigspec jest
albo nazw sygnalu, jak np. SIGKILL albo numerem sygnalu;
signum jest numerem sygnalu. Jeeli sigspec jest nazw
sygnalu, to moe ona zosta podana z przedrostkiem SIG lub
bez niego. Jeli nie podano sigspec, to przyjmuje si
SIGTERM. Opcja -l listuje nazwy sygnalow. Jeeli przy
podanym -l uyto jakich argumentow, to listowane s sygnaly
odpowiadajce tym argumentom, a kodem zwracanym jest 0.
Argument exit_status opcji -l jest liczb okrelajc numer
sygnalu lub kod zakoczenia procesu przerwanego przez
sygnal. kill zwraca prawd, jeli przynajmniej jeden z
sygnalow zostal pomylnie przeslany, lub falsz, jeli
pojawil si bld lub napotkano niepoprawn opcj.
let arg [arg ...]
Kady argument jest wyraeniem arytmetycznym, jakie ma
zosta zinterpretowane (zobacz OBLICZANIE WYRAE
ARYTMETYCZNYCH). Jeeli ostatni z nich interpretowany
jest jako zero, to let zwraca 1; w przeciwnym wypadku
zwracane jest 0.
local [opcja] [nazwa[=warto] ...]
Dla kadego argumentu tworzona jest zmienna lokalna o
nazwie nazwa i jest jej przypisywana warto. Opcj moe by
kada z opcji akceptowanych przez declare. Gdy local
uywane jest wewntrz funkcji, powoduje, e zmienna nazwa ma
zasig widzialnoci ograniczony do tej funkcji i jej
potomkow. Bez operandow, local wysyla list zmiennych
lokalnych na standardowe wyjcie. Bldem jest uycie local
poza funkcj. Zwracany jest kod 0, chyba e local zostanie
uyte poza funkcj lub podano nieprawidlow nazw, albo nazwa
jest zmienn tylko do odczytu.
logout Koczy prac powloki zgloszeniowej.
popd [-n] [+n] [-n]
Usuwa pozycje ze stosu katalogow. Bez argumentow, usuwa
katalog z wierzcholka stosu i wykonuje cd do nowego
katalogu na wierzcholku. Argumenty, jeli wystpuj, maj
nastpujce znaczenie:
+n Usuwa nt pozycj, liczc od lewej, listy pokazywanej
przez dirs, zaczynajc od zera. Na przyklad ,,popd
+0'' usuwa pierwszy katalog, a ,,popd +1'' drugi.
-n Usuwa nt pozycj, liczc od prawej, listy
pokazywanej przez dirs, zaczynajc od zera. Na
przyklad ,,popd -0'' usuwa ostatni katalog, ,,popd
-1'' przedostatni.
-n Nie wykonuje zwyklej zmiany katalogu podczas
usuwania katalogow ze stosu, tak e zmieniana jest
tylko zawarto stosu.
Jeeli polecenie popd powiedzie si, to wykonywane jest
rownie dirs, a kodem zwracanym jest 0. popd zwraca falsz
jeli napotkano nieprawidlow opcj, stos katalogow jest
pusty, podano nieistniejc pozycj stosu lub nie udala si
zmiana katalogu.
printf format [argumenty]
Zapisuje sformatowane argumenty na standardowe wyjcie
przy pomocy zadanego formatu. format jest lacuchem
znakowym zawierajcym trzy rodzaje obiektow: zwykle znaki,
ktore s po prostu kopiowane na standardowe wyjcie,
sekwencje specjalne, ktore s konwertowane i kopiowane na
standardowe wyjcie, i specyfikacje formatu, z ktorych
kada powoduje wypisanie nastpnego kolejnego argumentu.
Oprocz standardowych formatow printf(1), %b powoduje, e
printf interpretuje sekwencje specjalne w odpowiednim
argumencie, za %q powoduje, e printf wysyla odpowiedni
argument w formacie, jaki moe by ponownie wykorzystany
jako wejcie powloki.
W razie potrzeby format wykorzystywany jest ponownie, a
do obsluenia wszystkich argument'ow. Jeeli format wymaga
wikszej iloci argument'ow ni podano, to dodatkowe
specyfikacje formatu zachowuj si tak, jakby dostarczono
im odpowiednio warto zerow lub lacuch pusty. Zwracana
jest warto zero w przypadku powodzenia, niezerowa przy
porace.
pushd [-n] [katalog]
pushd [-n] [+n] [-n]
Dodaje katalog na wierzcholek stosu katalogow, albo
obraca stos, czynic nowy wierzcholek stosu biecym
katalogiem roboczym. Bez argumentow, zamienia miejscami
dwa najwysze katalogi stosu [wierzcholek i nastpny] i
zwraca 0, chyba e stos jest pusty. Argumenty, jeli je
podano, maj nastpujce znaczenie:
+n Obraca stos, tak e nty katalog (liczc od lewej
listy pokazywanej przez dirs, poczynajc od zera)
staje si wierzcholkiem.
-n Obraca stos, tak e nty katalog (liczc od prawej
listy pokazywanej przez dirs, poczynajc od zera)
staje si wierzcholkiem.
-n Nie wykonuje zwyklej zmiany katalogu podczas
dodawania katalogow do stosu, tak e zmieniany jest
tylko stos.
katalog
Odklada katalog na wierzcholek stosu, czynic go
nowym biecym katalogiem roboczym.
Jeeli polecenie pushd powiodlo si, to wykonywane jest
rownie dirs. Jeeli uywana jest pierwsza posta pushd, to
zwracane jest 0, chyba e nie udalo si cd na katalog.
Przy drugiej postaci, pushd zwraca 0, chyba e stos
katalogow jest pusty, podano nieistniejcy element stosu
lub nie powiodla si zmiana katalogu na zadany nowy
katalog biecy.
pwd [-LP]
Wypisuje bezwzgldn nazw pliku biecego katalogu roboczego.
Pokazana nazwa nie zawiera adnych dowiza symbolicznych
jeli podano opcj -P albo wlczona jest opcja -o physical
wbudowanego polecenia set. Jeli uyto opcji -L, wypisana
nazwa ciekowa moe zawiera dowizania symboliczne.
Zwracany kod wynosi 0, chyba e podczas odczytu nazwy
biecego katalogu pojawi si bld lub podano nieprawidlow
opcj.
read [-ers] [-t timeout] [-a anazwa] [-p zachta] [-n nznak] [-d
sep] [nazwa ...]
Ze standardowego wejcia czytany jest pojedynczy wiersz, a
jego pierwsze slowo jest przypisywane do pierwszej nazwy,
drugie slowo do drugiej nazwy i tak dalej, przy czym
pozostale na koniec slowa i rozdzielajce je separatory
przypisane zostan do ostatniej nazwy. Jeeli ze
standardowego wejcia przeczytano mniej slow ni podanych
zostalo nazw, to pozostalym nazwom przypisywane s puste
wartoci. Do podzialu wiersza na slowa wykorzystywane s
znaki z IFS. Znaku odwrotnego ukonika (\) mona uy do
usunicia specjalnego znaczenia nastpnego czytanego znaku
oraz do oznaczenia kontynuacji wiersza. Opcje, jeli je
podano, maj nastpujce znaczenie:
-a anazwa
Slowa s przypisywane do kolejnych indeksow
zmiennej tablicowej anazwa, poczynajc od 0.
anazwa jest kasowana przed przypisaniem nowych
wartoci. Inne argumenty nazwa s ignorowane.
-d sep Pierwszy znak sep sluy do zakoczenia wiersza
wejcia, zamiast znaku nowej linii.
-e Jeeli standardowe wejcie pochodzi z terminala, to
do uzyskania wiersza uywane jest readline (zobacz
READLINE powyej).
-n nznak
read powraca po przeczytaniu nznak znakow, zamiast
czeka na caly wiersz wejcia.
-p zachta
Wywietla zacht (prompt) na standardowym wyjciu
bldow, bez koczcego znaku nowej linii, przed prob
odczytu wejcia. Zachta wywietlana jest tylko jeli
wejcie pochodzi z terminala.
-r Odwrotny ukonik nie dziala jako znak specjalny.
Traktowany jest jako cz wiersza. W szczegolnoci,
para odwrotny ukonik-znak nowej linii nie moe by
wykorzystana jako kontynuacja wiersza.
-s Tryb cichy. Jeeli wejcie pochodzi z terminala, to
znaki nie s powtarzane (bez echa).
-t timeout
Powoduje, e read zwraca niepowodzenie, jeli w cigu
timeout sekund nie zostanie przeczytany pelny
wiersz wejcia. Opcja ta nie dziala, jeeli odczyt
nie jest prowadzony z terminala lub potoku.
Jeli nie podano adnych nazw, odczytany wiersz
przypisywany jest zmiennej REPLY. Zwracany kod wynosi 0,
chyba e napotkano koniec pliku lub read przekroczy czas
oczekiwania.
readonly [-apf] [nazwa ...]
Podane nazwy oznaczane s jako readonly; wartoci tych nazw
nie mog by zmieniane nastpujcymi poniej przypisaniami.
Jeli podano opcj -f, oznaczane s funkcje o nazwach
odpowiadajcych nazwom. Opcja -a ogranicza zmienne do
tablic. Jeli nie podano argumentow nazw lub jeli podano
opcj -p, wypisywane jest zestawienie wszystkich nazw o
atrybucie readonly. Opcja -p powoduje, e wyniki bd
wywietlane w formacie, ktory moe by ponownie wykorzystany
jako wejcie. Zwracany jest kod rowny 0, chyba e
napotkano nieprawidlow opcj, jedna z nazw nie jest
poprawn nazw zmiennej powloki lub podano -f z nazw, ktora
nie jest funkcj.
return [n]
Powoduje, e funkcja koczy prac zwracajc warto okrelon
przez n. Jeli pominito n, kodem zakoczenia jest kod
ostatniego polecenia wykonanego w ciele funkcji. Jeeli
zostanie uyte poza funkcj, ale podczas wykonywania
skryptu przez polecenie . (source), powoduje zatrzymanie
wykonywania tego skryptu przez powlok i zwrocenie albo n
albo kodu zakoczenia ostatniego wykonanego w skrypcie
polecenia. Jeeli zostanie uyte poza funkcj i nie podczas
wykonywania skryptu przez ., zwracany jest falsz.
set [--abefhkmnptuvxBCHP] [-o opcja] [arg ...]
Bez opcji, wywietlane s nazwa i warto kadej ze zmiennych
powloki, w formacie ktory moe by ponownie wykorzystany
jako wejcie. Wyniki s sortowane zgodnie z biecymi
ustawieniami locale. Gdy podane s opcje, ustawiaj one
lub kasuj atrybuty powloki. Argumenty pozostale po
przetworzeniu opcji traktowane s jako wartoci parametrow
pozycyjnych i przypisywane, kolejno, do $1, $2, ... $n.
Opcje, jeli je podano, maj nastpujce znaczenie:
-a Automatycznie zaznacza zmienione lub utworzone
zmienne i funkcje do wyeksportowania ich do
rodowiska kolejnych polece.
-b Natychmiast podaje status zakoczonych zada
drugoplanowych, zamiast czyni to przed nastpn
podstawow zacht. Dziala tylko jeli wlczona jest
kontrola zada.
-e Zakocz natychmiast jeli polecenie proste (zobacz
GRAMATYKA POW/LOKI powyej) koczy prac z kodem
niezerowym. Powloka nie koczy pracy, jeli
polecenie, ktore si nie powiodlo jest czci ptli
until lub while, czci instrukcji if, czci listy
&& lub || lub warto zwrocona przez polecenie
zostala odwrocona przez !. Przed zakoczeniem
pracy powloki wykonywana jest pulapka na sygnal
ERR, jeli byla ustawiona.
-f Wylcza rozwijanie nazw plikow.
-h Zapamituje poloenie polece przy wyszukiwania ich
do wykonania. Domylnie wlczone.
-k Wszystkie argumenty wystpujce w postaci
instrukcji przypisania umieszczane s w rodowisku
polecenia, nie za tylko te, ktore poprzedzaj nazw
polecenia.
-m Tryb monitorowania. Wlczona jest kontrola zada.
Opcja ta jest domylnie wlczona dla powlok
interaktywnych na systemach j obslugujcych
(zobacz STEROWANIE ZADANIAMI powyej). Procesy
drugoplanowe dzialaj w odrbnej grupie procesow a
po ich zakoczeniu wypisywany jest wiersz
zawierajcy ich kod zakoczenia.
-n Odczytuje polecenia, ale nie ich nie wykonuje.
Moe by wykorzystane do sprawdzenia bldow skladni
w skrypcie powloki. Ignorowane przez powloki
interaktywne.
-o nazwa-opcji
Nazw opcji moe by jedna z poniszych:
allexport
To samo, co -a.
braceexpand
To samo, co -B.
emacs Uyj interfejsu edycji wiersza polece w
stylu emacsa. Wlczone domylnie, jeli
powloka jest interaktywna, chyba e
zostala uruchomiona z opcj --noediting.
errexit To samo, co -e.
hashall To samo, co -h.
histexpand
To samo, co -H.
history Wlcza histori polece, jak opisano powyej
w sekcji HISTORII. Opcja ta jest
domylnie wlczona w powlokach
interaktywnych.
ignoreeof
Efekt jest taki, jakby zostalo wykonane
polecenie powloki ,,IGNOREEOF=10''
(zobacz powyej Zmienne pow/loki).
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.
posix Zmienia zachowanie bash tam, gdzie
domylne dzialanie roni si od standardu
POSIX 1003.2, tak by spelnia standard
(tryb posix).
privileged
To samo, co -p.
verbose To samo, co -v.
vi Uywa interfejsu edycji wiersza polece w
stylu vi.
xtrace To samo, co -x.
Jeeli podano -o bez nazwy-opcji, to wypisywane s
wartoci biecych opcji. Jeeli podano +o bez
nazwy-opcji, na standardowym wyjciu wywietlana
jest seria polece set potrzebnych do odtworzenia
aktualnych ustawie opcji.
-p Wlcza tryb uprzywilejowany (privileged). W tym
trybie pliki $ENV i $BASH_ENV nie s przetwarzane,
funkcje powloki nie s dziedziczone ze rodowiska,
a zmienna SHELLOPTS, jeli wystpuje w rodowisku,
jest ignorowana. Jeli powloka zostala
uruchomiona z efektywnym id uytkownika (grupy)
ronych od id rzeczywistego a nie podano opcji -p,
to podejmowane s opisane wyej akcje a efektywny
id uytkownika jest ustawiany na identyfikator
rzeczywisty. Jeeli przy uruchamianiu podano opcj
-p, to efektywny identyfikator uytkownika nie
jest resetowany. Wylczenie tej opcji powoduje, e
identyfikatory efektywne uytkownika i grupy
zostan ustawione na identyfikatory rzeczywiste.
-t Koczy prac po przeczytaniu i wykonaniu jednego
polecenia.
-u Podczas interpretacji parametrow traktuje
nieustawione zmienne jako bld. Jeeli wykonywana
jest proba interpretacji nieustawionej zmiennej,
to powloka wypisuje komunikat o bldzie i, jeli
nie jest interaktywna, koczy prac z niezerowym
kodem.
-v Wypisuje wiersze wejciowe powloki przy ich
odczytywaniu.
-x Po interpretacji kadego polecenia prostego,
wywietla zinterpretowan warto PS4, po ktorej
nastpuje polecenie i jego zinterpretowane
argumenty.
-B Powloka wykonuje interpretacj nawiasow (zobacz
Interpretacja nawias'ow powyej). Domylnie wlczone.
-C Jeli wlczone, bash nie nadpisuje istniejcego
pliku przy uyciu operatorow przekierowania >, >&
i <>. Mona to omin tworzc pliki wyjciowe przy
uyciu operatora przekierowania >| zamiast >.
-H Wlcza zastpowanie historii w stylu !. Opcja ta
jest domylnie wlczona dla powloki interaktywnej.
-P Jeeli jest ustawiona, to powloka nie poda za
dowizaniami symbolicznymi podczas wykonywania
polece zmieniajcych biecy katalog roboczy, jak
cd. Uywa zamiast tego fizycznej struktury
katalogow. Domylnie, bash poda za logicznym
lacuchem katalogow podczas wykonywania polece
zmieniajcych biecy katalog roboczy.
-- Jeeli po tej opcji nie wystpuj adne argumenty, to
parametry pozycyjne s kasowane. W przeciwnym
razie, parametry pozycyjne ustawiane s na
argumenty, nawet jeli niektore z nich zaczynaj si
od znaku -.
- Sygnalizuje koniec opcji, powodujc przypisanie
wszystkich pozostalych argumentow do parametrow
pozycyjnych. Opcje -x i -v s wylczane. Jeeli
nie ma argument'ow, to parametry pozycyjne
pozostaj bez zmian.
Opcje s domylnie wylczone, chyba e wskazano inaczej.
Uycie + zamiast - spowoduje, e opcje te zostan wylczone.
Opcje mog take zosta okrelone jako argumenty wywolania
powloki. Biecy zestaw opcji mona znale w $-. Zwracanym
kodem jest zawsze prawda, chyba e napotkano nieprawidlow
opcj.
shift [n]
Parametrom pozycyjne od n+1 ... zmieniaj nazwy $1 ....
parametry reprezentowane przez liczby $# w dol do $#-n+1
s usuwane. n musi by liczb nieujemn mniejsz lub rown $#.
Jeeli n wynosi 0, parametry nie s zmieniane. Jeeli nie
podano n, zaklada si, e wynosi 1. Jeeli n jest wiksze od
$#, parametry pozycyjne nie s zmieniane. Kod zakoczenia
jest wikszy od zera jeeli n jest wiksze od $# lub
mniejsze od zera; w przeciwnym wypadku 0.
shopt [-pqsu] [-o] [nazwa_opcji ...]
Przelcza wartoci zmiennych sterujcych opcjonalnym
zachowaniem powloki. Bez adnych opcji, albo z opcj -p,
wywietlana jest lista wszystkich dajcych si ustawi opcji,
ze wskazaniem dla kadej czy jest ona ustawiona czy nie.
Opcja -p powoduje, e wyniki bd wywietlane w postaci
dajcej si ponownie wykorzysta jako wejcie. Pozostale
opcje maj nastpujce znaczenie:
-s Wlcz (ustaw) kad nazw_opcji.
-u Wylcz (usu) kad nazw_opcji.
-q Zaniechaj zwyklego wywietlania (tryb cichy);
zwracany kod wskazuje na to czy nazwa_opcji jest
ustawiona czy nie ustawiona. Jeeli z -q podano
wiele argumentow nazw_opcji, to zwracanym kodem
jest zero, gdy wszystkie nazwy_opcji s wlczone; w
przeciwnym razie kod jest niezerowy.
-o Ogranicza wartoci nazwy_opcji do wartoci
zdefiniowanych dla opcji -o wbudowanego polecenia
set.
Jeeli uyto albo -s albo -u bez argumentow nazw_opcji,
wywietlanie ogranicza si do tych opcji, ktore,
odpowiednio, s ustawione bd nieustawione. Jeeli nie
wskazano inaczej, opcje shopt s domylnie wylczone (nie
ustawione).
Przy listowaniu opcji zwracany jest kod zerowy jeli
wszystkie nazwy_opcji s wlczone, niezerowy w przeciwnym
wypadku. Przy ustawianiu lub kasowaniu opcji zwracany
jest zerowy kod, chyba e nazwa_opcji nie jest poprawn
opcj powloki.
Lista opcji shopt obejmuje:
cdable_vars
Jeli jest ustawiona, to nie bdcy katalogiem
argument wbudowanego polecenia cd uwaany jest za
nazw zmiennej; wartoci tej zmiennej jest katalog,
na ktory ma nastpi zmiana.
cdspell Jeli jest ustawiona, to pomniejsze bldy w pisowni
skladowej katalogu w poleceniu cd bd poprawiane.
Sprawdzenie takich bldow obejmuje znaki
zamienione miejscami, znaki pominite i pojedyncze
zbdne znaki. Jeeli znaleziono poprawk, wypisywana
jest poprawna nazwa pliku a polecenie kontynuuje
dzialanie. Opcja ta jest wykorzystywana tylko
przez powloki interaktywne.
checkhash
Jeli jest ustawiona, bash sprawdza przed prob
wykonania polecenia znalezionego w tablicy
mieszajcej, czy polecenie to istnieje. Jeeli ju
nie istnieje, to wykonywane jest zwykle
przeszukiwanie cieki.
checkwinsize
Jeeli jest ustawione, bash sprawdza rozmiar okna
po kadym poleceniu i, jeli zachodzi potrzeba,
aktualizuje warto LINES i COLUMNS.
cmdhist Jeeli jest ustawione, bash usiluje zapisa
wszystkie wiersze polecenia wielowierszowego w
tej samej pozycji historii. Pozwala to na latw
ponown edycj polece obejmujcych wiele wierszy.
dotglob Jeeli jest ustawione, to bash do wynikow
rozwinicia nazw plikow wlcza take nazwy plikow
rozpoczynajce si kropk `.'.
execfail
Jeeli jest ustawione, to powloka nie-interaktywna
nie zakoczy pracy nie mogc wykona pliku
okrelonego jako argument wbudowanego polecenia
exec. Powloka interaktywna nie koczy pracy, jeli
exec zawiedzie.
expand_aliases
Jeeli jest ustawiona, aliasy s interpretowane jak
opisano powyej w ALIASY. Opcja ta jest wlczona
domylnie dla powlok interaktywnych.
extglob Jeli jest wlczona, wlczane s rozszerzone funkcje
dopasowywania wzorcow opisane powyej w Rozwijanie
nazw plik'ow.
histappend
Jeeli jest ustawiona, to do pliku o nazwie
wskazanej zmienn HISTFILE podczas koczenia pracy
przez powlok dodawana jest lista historii,
zamiast nadpisywania tego pliku list.
histreedit
Jeeli jest ustawione, a uywane jest readline, to
uytkownik ma moliwo ponownej edycji nieudanego
podstawienia historii historii.
histverify
Jeeli jest ustawione, a uywane jest readline, to
wyniki podstawiania historii nie s natychmiast
przesylane do analizatora powloki. Zamiast tego,
wiersz wynikowy ladowany jest do bufora
edycyjnego readline, pozwalajc na dalsze zmiany.
hostcomplete
Jeeli jest ustawione, a uywane jest readline,
bash bdzie usilowa wykona uzupelnianie nazwy
hosta podczas uzupelniania slowa zawierajcego @
(zobacz Uzupe/lnianie w READLINE powyej).
Domylnie wlczone.
huponexit
Jeeli jest ustawione, to bash wyle SIGHUP do
wszystkich zada podczas koczenia pracy
interaktywnej powloki zgloszeniowej.
interactive_comments
Jeli jest wlczone, pozwala by slowo rozpoczynajce
si od # powodowalo pominicie tego slowa i
wszystkich pozostalych znakow wiersza w powloce
interaktywnej (zobacz powyej KOMENTARZE). Opcja
domylnie wlczona.
lithist Jeli jest ustawione, a wlczona jest opcja
cmdhist, to polecenia wielowierszowe zachowywane
s w historii w miar moliwoci z osadzonymi znakami
nowej linii zamiast przy uyciu rednikow jako
separatorow.
login_shell
Powloka ustawia t opcj jeli zostanie uruchomiona
jako zgloszeniowa (zobacz WYWO/LANIE powyej). Ta
warto nie moe by zmieniona.
mailwarn
Jeeli jest ustawione, za do pliku, w ktorym
sprawdza poczt bash sigano od czasu ostatniego
sprawdzania, to zostanie wywietlony komunikat
,,The mail in plikpoczty has been read'' (Poczta
w plikpoczty zostala przeczytana).
no_empty_cmd_completion
Jeli jest ustawione, i stosowane jest readline,
to bash nie bdzie usilowal szuka w PATH moliwych
uzupelnie, gdy proba uzupelniania wystpi w pustym
wierszu.
nocaseglob
Jeli zostalo ustawione, to bash przy rozwijaniu
nazw plikow dopasowuje je nie zwracajc uwagi na
wielko liter (zobacz Rozwijanie nazw plik'ow
powyej).
nullglob
Jeli jest ustawione, to, bash pozwala by wzorce
nie dopasowujce adnych plikow (zobacz Rozwijanie
nazw plik'ow powyej) rozwijaly si w lacuch pusty,
zamiast na same siebie.
progcomp
Jeeli jest ustawione, to wlczone s uslugi
programowalnego uzupelniania (zobacz powyej
Programowalne uzupe/lnianie). Domylnie wlczone.
promptvars
Jeeli jest ustawione, to lacuchy zachty podlegaj
interpretacji zmiennych i podstawianiu parametrow
po interpretacji zachty opisanej w ZACHTA powyej.
Opcja ta jest domylnie wlczona.
restricted_shell
Powloka ustawia t opcj jeli zostala uruchomiona w
trybie okrojonym (zobacz POW/LOKA OKROJONA
poniej). Warto ta nie moe by zmieniona. Nie
jest ona resetowana podczas odczytu plikow
startowych, pozwalajc im na odkrycie czy powloka
jest okrojona czy nie.
shift_verbose
Jeeli jest ustawiona, to wbudowane shift wypisuje
komunikat o bldzie gdy liczba przesuni (przez
shift) przekracza liczb parametrow pozycyjnych.
sourcepath
Jeli jest ustawiona, to polecenie wbudowane
source (.) posluguje si wartoci PATH do
znalezienia katalogu zawierajcego plik podany
jako argument. Opcja domylnie wlczona.
xpg_echo
Jeeli jest ustawiona, to dla wbudowanego
polecenia echo wlczane jest domylne
interpretowanie sekwencji specjalnych z odwrotnym
ukonikiem.
suspend [-f]
Zawiesza wykonywanie tej powloki do otrzymania przez ni
sygnalu SIGCONT. Opcja -f mowi, by nie narzeka, jeli
uyto suspend w powloce zgloszeniowej; po prostu zawiesi
mimo to. Kodem zwracanym jest 0, chyba e powloka jest
powlok zgloszeniow i nie podano opcji -f, lub gdy nie
jest wlczona kontrola zada.
test wyra
[ wyra ]
Zwraca kod 0 lub 1 w zalenoci od interpretacji wyraenia
warunkowego wyra. kady operator i operand musi by
odrbnym argumentem. Wyraenia skladajc si ze skladowych
opisanych powyej w WYRAENIA WARUNKOWE.
Wyraenia mog by lczone przy uyciu poniszych operatorow,
podanych w kolejnoci malejcego priorytetu.
! wyra Prawda jeli wyra jest falszem.
( wyra )
Zwraca warto wyra. Moe by stosowane do obejcia
zwyklej kolejnoci operatorow.
wyra1 -a wyra2
Prawda jeli oba: wyra1 i wyra2 s prawdziwe.
wyra1 -o wyra2
Prawda jeli wyra1 lub wyra2 jest prawdziwe.
test i [ interpretuj wyraenia warunkowe poslugujc si
zestawem regul opartych o liczb argumentow.
0 argumentow
Wyraenie jest falszywe.
1 argument
Wyraenie jest prawdziwe wtedy i tylko wtedy gdy
argument nie jest pusty (null).
2 argumenty
Jeli pierwszym argumentem jest !, to wyraenie jest
prawdziwe wtedy i tylko wtedy gdy drugi argument
jest pusty. Jeli pierwszy argument jest jednym z
jednoargumentowych operatorow warunkowych podanych
powyej w WYRAENIA WARUNKOWE, to wyraenie jest
prawdziwe jeeli test jednoargumentowy jest
prawdziwy. Jeeli pierwszy argument nie jest
poprawnym jednoargumentowym operatorem warunkowym,
to wyraenie ma warto falsz.
3 argumenty
jeeli drugi argument jest jednym z
dwuargumentowych operatorow warunkowych podanych
powyej w WYRAENIA WARUNKOWE, to wynik wyraenia
jest wynikiem dwuargumentowego testu z
zastosowaniem pierwszego i trzeciego argumentu
jako operandow. Jeli pierwszym argumentem jest !,
to warto stanowi negacj testu dwuargumentowego
przy uyciu drugiego i trzeciego argumentu. Jeli
pierwszym argumentem jest dokladnie ( a trzecim
argumentem dokladnie ), to wynik jest
jednoargumentowym testem drugiego argumentu. W
pozostalych przypadkach wyraenie jest falszywe.
Operatory -a i -o w tym przypadku uwaane s za
dwuargumentowe.
4 argumenty
Jeli pierwszym argumentem jest !, to wynik jest
negacj trojargumentowego wyraenia zloonego z
pozostalych argumentow. W przeciwnym wypadku,
wyraenie jest poddawanie analizie skladni i
interpretowane zgodnie z priorytetami przy
zastosowaniu regul podanych powyej.
5 lub wicej argumentow
Wyraenie jest poddawanie analizie skladni i
interpretowane zgodnie z priorytetami przy
zastosowaniu regul podanych powyej.
times Wypisuje sumaryczne czasy uytkownika i systemu dla
powloki i procesow z niej uruchomionych. Kodem zwracanym
jest 0.
trap [-lp] [argument] [sigspec ...]
Polecenie argument ma zosta odczytane i wykonane, gdy
powloka otrzyma sygnal(y) sigspec. Jeli nie wystpuje
argument lub jest to -, to wszystkie podane sygnaly
resetowane s do swych wartoci pierwotnych (wartoci, jakie
mialy przy wejciu do powloki). Jeeli argument jest
lacuchem pustym, to sygnal okrelony przez kade sigspec
jest ignorowany przez powlok i polecenia, jakie ona
wywoluje. Jeeli nie wystpil argumentu a podano -p,
wywietlane s polecenia zwizane z przechwyceniem kadego z
sygnalow sigspec. Jeeli nie podano adnych argumentow lub
jeli podano tylko -p, to trap wypisuje list polece
zwizanych z kadym z numerow sygnalow. Kade sigspec jest
albo nazw sygnalu zdefiniowan w <signal.h albo numerem
sygnalu. Jeeli sigspec jest sygnalem EXIT (0), to
polecenie argument wykonywane jest przy koczeniu pracy
przez powlok. Jeeli sigspec jest rowne DEBUG, to
polecenie argument wykonywane jest po kadym poleceniu
prostym (zobacz GRAMATYKA POW/LOKI powyej). Jeli sigspec
to ERR, wowczas polecenie argument wykonywane jest
kadorazowo gdy polecenie proste zwroci niezerowy kod
zakoczenia. Pulapka zastawiona na ERR nie jest
wykonywana gdy polecenie, ktore zakoczylo si
niepowodzeniem jest czci ptli until lub while, czci
instrukcji if, czci listy && lub || albo jeli warto
zwracana przez to polecenie jest wstawiana za pomoc !.
Opcja -l powoduje, e powloka wypisuje zestawienie nazw
sygnalow i odpowiadajcych im numerow. Sygnaly ignorowane
przy wejciu do powloki nie mog by przechwycone ani
zresetowane. W procesie potomnym, podczas jego
tworzenia, sygnaly przechwycone resetowane s do swych
wartoci pierwotnych. Zwracanym kodem jest falsz jeli
ktorykolwiek z sigspec jest nieprawidlowy; w przeciwnym
razie trap zwraca true.
type [-atp] nazwa [nazwa ...]
Bez opcji wskazuje, jak powinna by interpretowana kada z
nazw, jeli zostanie uyta jako nazwa polecenia. Jeeli
uyto opcji -t, to type wypisuje lacuch bdcy jednym z
alias, keyword, function, builtin lub file, jeli nazwa
jest odpowiednio aliasem, zastrzeonym slowem powloki,
funkcj, poleceniem wbudowanym lub plikiem dyskowym. Jeli
nie znaleziono nazwy, to nie jest wypisywane nic i jako
kod zakoczenia zwracany jest falsz. Jeli posluono si
opcj -p to type zwraca albo nazw pliku dyskowego, ktory
zostalby wykonany jeli nazwa zostalaby podana jako nazwa
polecenia, albo nic jeli ! .if t type -t nazwa ! .if n
,,type -t nazwa'' nie zwrociloby file. Jeli polecenie
istnieje w tablicy mieszajcej, -p wypisuje warto z
tablicy, niekoniecznie plik, ktory pojawia si jako
pierwszy w PATH. Jeeli uyto opcji -a, to type wypisuje
wszystkie miejsca zawierajace wykonywaln nazw. Obejmuje
to aliasy i funkcje, wtedy i tylko wtedy gdy uyto rownie
opcji -p. Przy uyciu -a nie korzysta si z tablicy
mieszajcej polece. type zwraca prawd jeli znaleziono
jakie jego argumenty, falsz jeli nie znaleziono adnych.
ulimit [-SHacdflmnpstuv [limit]]
Zapewnia kontrol nad zasobami dostpnymi powloce i
procesow jakie ona uruchamia, na systemach umoliwiajcych
tak kontrol. Opcje -H i -S okrelaj, e dla danego zasobu
ustawiane jest twarde (hard) lub mikkie (soft)
ograniczenie. Ograniczenie twarde nie moe by zwikszane po
ustawieniu; ograniczenie mikkie moe by zwikszane a do
wartoci ograniczenia twardego. Jeli nie podano ani -H ani
-S, to ustawiane jest zarowno ograniczenie mikkie jak i
twarde. Ograniczenie limit moe by liczb w jednostkach
okrelonych dla zasobu lub jedn ze specjalnych wartoci:
hard, soft lub unlimited, oznaczajcych odpowiednio: biece
twarde ograniczenie, biece mikkie ograniczenie oraz brak
ograniczenia. Jeeli pominito limit, wypisywana jest
bieca warto ograniczenia mikkiego danego zasobu, chyba e
podano opcj -H. Gdy podano wicej ni jedno okrelenie
zasobu, przed wartoci wypisywana jest nazwa ograniczenia
i jednostka miary. Inne opcje interpretowane s
nastpujco:
-a Podawane s wszystkie biece ograniczenia
-c Maksymalny rozmiar tworzonych plikow core
-d Maksymalny rozmiar segmentu danych procesu
-f Maksymalny rozmiar plikow tworzonych przez powlok
-l Maksymalny rozmiar, jaki moe zosta zablokowany w
pamici
-m Maksymalny rozmiar czci rezydentnej
-n Maksymalna liczba otwartych deskryptorow pliku
(wikszo systemow nie pozwala na ustawianie tej
wartoci)
-p Rozmiar potoku w blokach 512-bajtowych (moe nie by
ustawione)
-s Maksymalny rozmiar stosu
-t Maksymalny czas CPU w sekundach
-u Maksymalna liczba procesow dostpnych dla
pojedynczego uytkownika
-v Maksymalna wielko pamici wirtualnej dostpna dla
powloki
Jeeli podano limit, to staje si now wartoci ograniczenia
zadanego zasobu (opcja -a tylko wywietla). Jeeli nie
podano adnej ocpji, to zaklada si opcj -f. Wartoci
podawane s przyrostowo co 1024-bajty, z wyjtkiem -t,
podawanego w sekundach, -p, w jednostkach 512-bajtowych
blokow, oraz -n i -u, bdcych wartociami bez miana.
Zwracanym kodem jest 0, chyba e podano nieprawidlow opcj
lub argument albo podczas ustawiania nowego ograniczenia
wystpil bld.
umask [-p] [-S] [tryb]
Maska praw dostpu dla plikow tworzonych przez uytkownika
ustawiana jest na tryb. Jeeli tryb rozpoczyna si od
cyfry, jest interpretowany jako liczba osemkowa; w
przeciwnym razie interpretowany jest jako maska w trybie
symbolicznym, podobnie jak akceptowane przez chmod(1).
Jeeli pominito tryb wypisywana jest aktualna warto maski.
Opcja -S powoduje, e maska zostanie wypisana w postaci
symbolicznej; domylne wyjcie jest w postaci liczby
osemkowej. Jeeli podano opcj -p i pominito tryb, to
wyjcie ma posta, ktora moe by powtornie wykorzystana jako
wejcie. Kodem zwracanym jest 0 jeli pomylnie zmieniono
tryb lub nie podano argumentu tryb, za falsz w
pozostalych sytuacjach.
unalias [-a] [nazwa ...]
Usuwa kad z nazw z listy zdefiniowanych aliasow. Jeeli
podano -a, to usuwane s definicje wszystkich aliasow.
Zwracanym kodem jest prawda, chyba e podana nazwa nie
jest zdefiniowanym aliasem.
unset [-fv] [nazwa ...]
Dla kadej nazwy, usuwa odpowiadajc jej warto lub funkcj.
Jeeli nie podano adnych opcji lub podano opcj -v, to kada
z nazw odnosi si do zmiennej powloki. Zmienne read-only
nie mog by kasowane. Jeeli podano -f, to kada z nazw
wskazuje na funkcj powloki, a definicja funkcji jest
usuwana. Kada z usunitych zmiennych lub funkcji usuwana
jest ze rodowiska przesylanego nastpnym poleceniom. Jeli
usunita zostanie ktora ze zmiennych RANDOM, SECONDS,
LINENO, HISTCMD, FUNCNAME, GROUPS, lub DIRSTACK, to traci
ona swe specjalne wlaciwoci, nawet jeli zostanie nastpnie
ponownie ustawiona. Kodem zakoczenia jest prawda, chyba e
nazwa nie istnieje lub jest readonly.
wait [n]
Czeka na okrelony proces i zwraca jego kod zakoczenia. n
moe by identyfikatorem procesu lub okreleniem zadania;
jeli podano okrelenie zadania, to nastpi oczekiwanie na
wszystkie procesy w potoku tego zadania. Jeeli nie
podano n, nastpuje oczekiwanie na wszystkie aktualnie
aktywne procesy potomne i zwracany jest kod zerowy. Jeli
n okrela nieistniejcy proces lub zadanie, to zwracany
jest kod 127. W pozostalych przypadkach zwracany jest
kod zakoczenia ostatniego procesu lub zadania na jakie
czekano.
POW/LOKA OKROJONA
Jeli bash uruchomiony jest pod nazw rbash, lub przy jego
wywolaniu posluono si opcj -r, to staje si powlok okrojon
(restricted). Powloka okrojona sluy do ustawienia rodowiska
lepiej kontrolowanego ni powloka standardowa. Zachowuje si ona
identycznie jak bash z wyjtkiem tego, e ponisze nie s dozwolone
lub nie s wykonywane:
o zmiana katalogow przy pomocy cd
o ustawianie lub kasowanie wartoci SHELL, PATH, ENV lub
BASH_ENV
o podawanie nazw polece zawierajcych /
o podawanie nazw plikow zawierajcych / jako argumentu
wbudowanego polecenia . (kropka).
o importowanie definicji funkcji ze rodowiska powloki przy
uruchamianiu
o analiza wartoci SHELLOPTS ze rodowiska powloki przy
uruchamianiu
o przekierowywanie wyjcia przy pomocy operatorow >, >|, <>,
>&, &> i >>
o poslugiwanie si wbudowanym poleceniem exec w celu
zastpienia powloki innym poleceniem
o dodawanie lub usuwanie polece przy pomocy opcji -f i -d
wbudowanego polecenia enable
o podawanie opcji -p wbudowanego polecenia command
o wylczanie trybu okrojonego za pomoc set +r lub set +o
restricted.
Powysze ograniczenia wymuszane s po przeczytaniu plikow
uruchomieniowych.
Jeli polecenie do wykonania okazuje si by skryptem powloki
(zobacz WYKONYWANIE POLECE powyej), to rbash wylcza wszelkie
ograniczenia w powloce zrodzonej do wykonania skryptu.
ZOBACZ TAKE
Bash Features, Brian Fox and Chet Ramey
The Gnu Readline Library, Brian Fox and Chet Ramey
The Gnu History Library, Brian Fox and Chet Ramey
Portable Operating System Interface (POSIX) Part 2: Shell and
Utilities, IEEE
sh(1), ksh(1), csh(1)
emacs(1), vi(1)
readline(3)
PLIKI
/bin/bash
Plik wykonywalny powloki bash
/etc/profile
Ogolnosystemowy plik inicjujcy, wykonywany dla powlok
zgloszeniowych
~/.bash_profile
Osobisty plik inicjujcy, wykonywany dla powlok
zgloszeniowych
~/.bashrc
Indywidualny plik startowy dla powloki trybu
interaktywnego
~/.bash_logout
Indywidualny plik porzdkujcy dla powloki zgloszeniowej,
wykonywany podczas koczenia przez ni pracy
~/.inputrc
Indywidualny plik inicjujcy dla readline
AUTORZY
Brian Fox, Free Software Foundation
bfox@gnu.ai.MIT.Edu
Chet Ramey, Case Western Reserve University
chet@ins.CWRU.Edu
ZG/LOSZENIA B/LD'OW
Jeli znajdziesz w bash bld, powiniene go zglosi. Ale najpierw
powiniene upewni si, e rzeczywicie jest to bld i e pojawia si w
najwieszej wersji bash jak masz.
Po ustaleniu, e bld faktycznie istnieje, uyj polecenia bashbug
do wyslania zgloszenia bldu. Jeli masz poprawk usuwajc problem,
zachcamy do przeslania jej rownie! Sugestie i `filozoficzne'
zgloszenia bldow mog by przesylane [w jzyku angielskim] do bug-
bash@gnu.org lub wysylane na grup dyskusyjn gnu.bash.bug.
WSZYSTKIE zgloszenia bldow powinny zawiera:
Numer wersji bash
Sprzt i system operacyjny
Uyty kompilator
Opis bldnego zachowania
Krotki skrypt lub przepis na uzyskanie bldu
bashbug wstawia pierwsze trzy pozycje automatycznie do szablonu
jaki udostpnia w celu wypelnienia zgloszenia bldow.
Komentarze i zgloszenia bldow dotyczce tej strony podrcznika
[oryginalu] powinny by kierowane na adres chet@ins.CWRU.Edu.
B/LDY
Jest za duy i zbyt wolny.
Istnieje troch subtelnych ronic pomidzy bash a tradycyjnymi
wersjami sh, glownie z powodu specyfikacji POSIX.
Aliasy w niektorych zastosowaniach wprawiaj w zaklopotanie.
Polece wbudowanych powloki i funkcji nie mona
zatrzymywa/wznawia.
Polecenia zloone i sekwencje polece postaci `a ; b ; c' nie s
obslugiwane przychylnie przy probie wstrzymania procesu. Gdy
proces jest zatrzymany, powloka natychmiast wykonuje nastpnej
polecenie sekwencji. Wystarcza umieszczanie sekwencji polece
wewntrz nawiasow by wymusi wykonanie ich przez podpowlok, ktora
moe by zatrzymana jako calo.
Polecenia wewntrz konstrukcji podstawiania polece $(...) nie s
analizowane do momentu proby podstawienia. Powoduje to oponion
sygnalizacj bldow, pojawiajc si po uplywie pewnego czasu od
wprowadzenia polecenia.
Zmienne tablicowe nie mog by (na razie) eksportowane.
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu
Tlumaczenia Manuali i moe nie by aktualne. W razie zauwaenia
ronic midzy powyszym opisem a rzeczywistym zachowaniem
opisywanego programu lub funkcji, prosimy o zapoznanie si z
oryginaln (angielsk) wersj strony podrcznika.