BASH(1) BASH(1)
bash - GNU Bourne-Again SHell
bash [opcje] [plik]
Bash is Copyright (C) 1989-2001 by the Free Software Foundation, Inc.
Bash jest zgodnym z sh interpreterem jzyka polece, wykonujcym polecenia
ze standardowego wejcia bd z pliku. Wczono do rwnie przydatne cechy
zaczerpnite z powoki Korna i powoki C (ksh i csh).
Bash w zamierzeniu jest implementacj zgodn z POSIX-ow specyfikacj powok
i narzdzi -- IEEE POSIX Shell and Tools specification (IEEE Working
Group 1003.2).
Oprcz jednoznakowych opcji powoki udokumentowanych w opisie wbudowanego
polecenia set, bash przy wywoaniu interpretuje ponisze opcje:
-c acuch Jeli wystpuje opcja -c, to polecenia odczytywane s z acucha.
Jeeli po acuchu istniej argumenty, to s one przypisywane do
argumentw pozycyjnych, poczynajc od $0.
-r Jeeli wystpuje opcja -r, to powoka staje si powok okrojon
(restricted). Zobacz poniej POWOKA OKROJONA.
-i Jeeli wystpuje opcja -i, to powoka jest interaktywna.
-s Jeli wystpuje opcja -s lub po przetworzeniu opcji nie
pozostaj adne argumenty, to polecenia odczytywane s ze stan-
dardowego wejcia. Opcja ta umoliwia na ustawienie parametrw
pozycyjnych podczas wywoania powoki interaktywnej.
-D Na standardowym wyjciu wypisywana jest lista wszystkich pod-
wjnie cytowanych acuchw poprzedzonych znakiem $. S to acuchy
bdce przedmiotem tumaczenia 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 powoki akceptowanych przez
polecenie wbudowane shopt (zobacz WBUDOWANE POLECENIA POWOKI
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
powoki akceptowanych przez shopt. Jeli opcj wywoania jest
+O, tworzone wyjcie jest formatowane w taki sposb, by mona
byo wykorzysta je jako wejcie.
-- Zapis -- sygnalizuje koniec opcji i wycza dalsze ich
przetwarzanie. Argumenty wystpujce po -- traktowane s jako
nazwy plikw i argumenty. Argument - jest rwnowanikiem --.
Bash interpretuje take wiele opcji wieloznakowych. Jeli maj zosta
rozpoznane, opcje te musz pojawi si w wierszu polece przed opcjami jed-
noznakowymi,
--dump-po-strings
Rwnowane -D, ale wyjcie jest w formacie pliku GNU gettext po
(portable object).
--dump-strings
Rwnowanik -D.
--help Wywietla na standardowym wyjciu komunikat o uytkowaniu i pomyl-
nie koczy prac.
--init-file plik
--rcfile plik
Wykonuje polecenia z podanego pliku zamiast ze standardowego
osobistego pliku inicjujcego ~/.bashrc, jeli powoka jest
interaktywna. Zobacz WYWOANIE poniej.
--login
Sprawia, e bash dziaa tak, jakby zosta wywoany jako powoka
zgoszeniowa (login shell). Zobacz WYWOANIE poniej.
--noediting
Nie uywa biblioteki GNU readline do odczytu wierszy polece w
trybie interaktywnym.
--noprofile
Nie odczytuje ani oglnosystemowego pliku startowego /etc/profile
ani adnego z osobistych plikw inicjujcych ~/.bash_profile,
~/.bash_login czy ~/.profile. Domylnie, bash czyta te pliki gdy
jest wywoany jako powoka zgoszeniowa (zobacz WYWOANIE poniej).
--norc Nie odczytuje i nie wykonuje osobistego pliku inicjujcego
~/.bashrc jeli powoka jest interaktywna. Opcja ta jest domylnie
wczona, jeeli powok wywoano jako sh.
--posix
Zmienia zachowanie bash tam, gdzie operacja domylna rni si od
standardu POSIX 1003.2 tak, by dostosowa si do niego (tryb
posix).
--restricted
Powoka staje si okrojona (zobacz POWOKA OKROJONA poniej).
--verbose
Rwnowanik opcji -v.
--version
Pokazuje na standardowym wyjciu informacj o wersji tego
egzemplarza bash i pomylnie koczy prac.
Jeli po przetworzeniu opcji pozostaj jakie argumenty, a nie
podano ani opcji -c ani -s, to zakada si, e pierwszy argument
jest nazw pliku zawierajcego polecenia powoki. Jeeli bash zosta
wywoany w taki sposb, to $0 przypisywana jest nazwa pliku z
poleceniami, a parametrom pozycyjnym pozostae argumenty. Bash
odczytuje i wykonuje polecenia z tego pliku, a nastpnie koczy
prac. Kod zakoczenia basha jest wwczas kodem zakoczenia ostat-
niego wykonanego polecenia skryptu. Jeli nie wykonano adnego
polecenia, to kod zakoczenia wynosi 0.
Powoka zgoszeniowa (login shell) to taka, w ktrej pierwszym
znakiem zerowego argumentu jest -, lub taka, ktr uruchomiono z
opcj --login.
Powoka interaktywna to taka, ktr uruchomiono bez argumentw
innych ni opcje i bez opcji -c; zarwno jej standardowe wejcie
jak i wyjcie powizane jest z terminalami (tak jak okrelia to
funkcja isatty(3)), albo taka, ktr uruchomiono z opcj -i. Jeli
bash jest interaktywny, to ustawiane jest PS1 za $- zawiera i;
pozwala to skryptowi powoki lub plikowi startowemu na
sprawdzanie tego stanu.
Ponisze akapity opisuj, jak bash wykonuje swoje pliki startowe.
Jeli ktry z tych plikw istnieje, ale nie moe by odczytany, to
bash zgasza bd. Tyldy (~) w nazwach plikw interpretowane s
wedug regu opisanych poniej w czci Interpretacja tyld sekcji
INTERPRETACJA.
Gdy bash wywoywany jest jako powoka zgoszeniowa lub jako powoka
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
posuy si opcj --noprofile podczas uruchamiania powoki, by zakaza
takiego zachowania.
Podczas koczenia pracy powoki zgoszeniowej, bash czyta i
wykonuje polecenia z pliku ~/.bash_logout, jeli taki istnieje.
Jeeli uruchamiana jest powoka interaktywna nie bdca powok
zgoszeniow, 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 przykad w celu
uruchomienia skryptu powoki, to szuka w rodowisku zmiennej
BASH_ENV, interpretuje jej warto, jeli j znalaz, i uywa otrzy-
manej wartoci jako nazwy pliku do odczytania i wykonania. Bash
zachowuje si tak, jakby byy wykonane nastpujce polecenia:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
ale do szukania nazwy pliku nie jest uywana warto zmiennej PATH.
Jeeli bash wywoano pod nazw sh, to prbuje on naladowa zachowanie
startowe historycznych wersji sh tak cile jak to jest moliwe,
przy rwnoczesnym spenianiu standardu POSIX. Wywoany jako powoka
interaktywna lub powoka nie-interaktywna z opcj --login, usiuje
na pocztku odczyta i wykona polecenia z /etc/profile i ~/.pro-
file, w tej kolejnoci. W celu zakazania tego zachowania mona uy
opcji --noprofile. Wywoany jako powoka interaktywna pod nazw
sh, bash poszukuje zmiennej ENV, interpretuje jej warto, jeli
jest zdefiniowana, i posuguje si otrzyman wartoci jako nazw
pliku, ktry ma by odczytany i wykonany. Poniewa powoka wywoana
jako sh nie usiuje czyta ani wykonywa polece z jakichkolwiek
innych plikw startowych, opcja --rcfile nie ma adnych skutkw.
Powoka nie-interaktywna wywoana pod nazw sh nie prbuje czyta
adnych plikw startowych. Wywoany jako sh, bash wchodzi w tryb
posix po odczycie plikw startowych.
Gdy bash uruchomiony jest w trybie posix, jak z opcj --posix
wiersza polece, kieruje si standardem POSIX dla plikw star-
towych. W trybie tym, powoka interaktywna interpretuje zmienn
ENV a polecenia odczytywane i wykonywane s z pliku, ktrego nazw
jest zinterpretowana warto. Nie s czytane inne pliki startowe.
Bash usiuje rozstrzygn, czy jest uruchomiony przez demona powoki
zdalnej, zwykle rshd. Jeeli stwierdzi, e zosta uruchomiony
przez rshd, to odczytuje i wykonuje polecenia z ~/.bashrc, jeli
plik ten istnieje i daje si czyta. Nie bdzie tego robi wywoany
jako sh. Mona posuy si opcj --norc, by zakaza tego zachowania
oraz opcj --rcfile, by wymusi czytanie innego pliku, ale rshd
zazwyczaj nie wywouje powoki z tymi opcjami ani nie pozwala na
ich podanie.
Jeli powoka zostaa uruchomiona z efektywnym id uytkownika
(grupy) rnym od id rzeczywistego, a nie podano opcji -p, to nie
s odczytywane adne pliki startowe, funkcje powoki nie s dziedz-
iczone ze rodowiska, zmienna SHELLOPTSP, jeli jest taka w
rodowisku, jest ignorowana a efektywny identyfikator uytkownika
jest ustawiany na jego identyfikator rzeczywisty. Jeli przy
wywoaniu podano opcj -p, to zachowanie startowe jest takie samo,
ale nie jest resetowany efektywny id uytkownika.
W pozostaej czci tego dokumentu uywane s ponisze definicje.
odstp Spacja lub znak tabulacji.
sowo Sekwencja znakw uwaana przez powok za pojedyncz jednostk.
Znana te jako token.
nazwa Jest to sowo skadajce si wycznie ze znakw alfanu-
merycznych i znakw podkrelenia, i rozpoczynajce si
znakiem alfabetycznym lub podkreleniem. Wspominane rwnie
jako identyfikator.
metaznak
Znak, ktre, gdy nie jest cytowany, oddziela sowa. Jeden z
poniszych:
| & ; ( ) < > spacja tab
operator sterujcy
token penicy funkcj sterujc. Jest to jeden z poniszych
symboli:
|| & && ; ;; ( ) | <nowalinia>
Sowa zastrzeone (reserved words) to takie, ktre maj dla powoki
specjalne znaczenie. Nastpujce sowa s rozpoznawane jako zas-
trzeone, gdy nie s cytowane i wystpuj albo jako pierwsze sowo
polecenia prostego (zobacz GRAMATYKA POWOKI poniej) albo trzecie
sowo polece case lub for;
! case do done elif else esac fi for function if in select then
until while { } time [[ ]]
Polecenia proste
Polecenie proste jest sekwencj opcjonalnych przypisa zmiennych,
po ktrej nastpuj rozdzielane przez odstp sowa i przekierowania,
a zakoczon operatorem sterujcym. Pierwsze sowo okrela polecenie,
jakie ma zosta wykonane i jest przekazywane jako argument numer
zero. Pozostae sowa s przekazywane jako argumenty wywoywanego
polecenia.
Wartoci zwracan polecenia prostego jest jego kod zakoczenia lub
128+n jeeli polecenie przerwane jest sygnaem n.
Potoki
Potok jest sekwencj jednego lub wicej polece rozdzielonych
znakiem |. Formatem potoku jest:
[time [-p]] [ ! ] polecenie [ | polecenie2 ... ]
Standardowe wyjcie z polecenia poczone jest za porednictem
potoku ze standardowym wejciem polecenia2. Poczenie to wykony-
wane jest przed moliwymi przekierowaniami podanymi dla polecenia
(zobacz poniej PRZEKIEROWANIE.
Jeeli potok poprzedza zastrzeone sowo !, to kod zakoczenia
takiego potoku jest negacj (NOT) kodu zakoczenia ostatniego
polecenia. W przeciwnym wypadku, kodem potoku jest kod
zakoczenia ostatniego polecenia. Powoka oczekuje na zakoczenie
(terminate) wszystkich polece w potoku przed zwrceniem wartoci.
Jeeli potok jest poprzedzony sowem zastrzeonym time, to po jego
zakoczeniu podawany jest czas wykonywania, jak rwnie czas
uytkownika i czas systemu zuyty na wykonanie. Opcja -p zmienia
format tworzonych wynikw na okrelony przez POSIX. Do sforma-
towania acucha okrelajcego, jak powinna by wywietlana informacja
o czasach, mona ustawi zmienn TIMEFORMAT; zobacz opis TIMEFORMAT
w Zmienne powoki poniej.
Kade polecenie w potoku uruchamiane jest jako odrbny proces (tj.
w podpowoce).
Listy
Lista jest potokiem lub sekwencj kilku potokw rozdzielonych jed-
nym z operatorw ;, &, && lub ||, i opcjonalnie zakoczon jednym
ze znakw ;, & lub <nowalinia>.
Spord tych operatorw listowych, && i || maj ten sam priorytet,
nastpujce po nich ; i &, rwnie maj rwny midzy sob priorytet.
Jeli polecenie zakoczone jest operatorem sterujcym &, to powoka
wykonuje je w tle (background) w podpowoce. Powoka macierzysta
nie oczekuje na zakoczenie polecenia, a zwracany kod wynosi 0.
Polecenia oddzielane znakiem rednika ; wykonywane s sekwen-
cyjnie; powoka 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 zoone
Polecenie zoone (compound command) jest jednym z poniszych:
(lista)
lista wykonywana jest w podpowoce. Przypisania zmiennych
i polecenia wbudowane wpywajce na rodowisko powoki nie
zachowuj swoich skutkw po zakoczeniu polecenia. Zwracanym
kodem jest kod zakoczenia listy.
{ lista; }
lista jest po prostu wykonywana w biecym rodowisku
powoki. 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 metaznakw ( i , { i } s sowami zas-
trzeonymi i aby zostay rozpoznane musz si pojawi tam,
gdzie dozwolone jest uycie sw zastrzeonych. Poniewa nie
powoduj podziau na sowa, musz by oddzielone od listy za
pomoc biaego 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
rwnowane konstrukcji let "wyraenie".
[[ wyraenie ]]
Zwraca kod 0 lub 1 w zalenoci od interpretacji wyraenia
warunkowego wyraenie. Wyraenia zoone s ze skadowych (pri-
maries) opisanych poniej w opcji WYRAENIA WARUNKOWE. Na
sowach pomidzy [[ a ]] nie s wykonywane rozwinicia nazw
plikw ani podzia na sowa; s natomiast wykonywane: inter-
pretacja tyld, parametrw i zmiennych, interpretacja wyrae
arytmetycznych, podstawianie wynikw polece, podstawianie
wynikw procesw i usunicia cytowa.
Gdy uywane s operatory == i !=, acuch na prawo od opera-
tora traktowany jest jak wzorzec i dopasowywany zgodnie z
zasadami opisanymi poniej w sekcji Dopasowywanie wzorcw.
Wartoci zwracan jest 0 jeli acuch odpowiednio pasuje lub
nie pasuje do wzorca, za 1 w przeciwnym przypadku. Mona
zacytowa dowoln cz wzorca w celu wymuszenia dopasowywania
jej jako acucha.
Wyraenia mona czy przy pomocy nastpujcych operatorw,
wymienionych w kolejnoci malejcego priorytetu:
( wyraenie )
Zwraca warto wyraenia. Moe suy do uniewanienia
zwykej kolejnoci operatorw.
! wyraenie
Prawda jeeli wyraenie jest faszywe.
wyraenie1 && wyraenie2
Prawda jeli zarwno wyraenie1 jak i wyraenie2 s
prawdziwe.
wyraenie1 || wyraenie2
Prawda jeli cho jedno spord wyraenie1 lub wyrae-
nie2 jest prawdziwe.
Operatory && i || nie wykonuj wyraenia2 jeeli warto
wyraenia1 wystarcza do okrelenia wartoci, jaka zostanie
zwrcona przez cae wyraenie warunkowe.
for nazwa [ in sowo ] ; do lista ; done
Interpretowane s sowa nastpujce po in, tworzc list ele-
mentw. Zmiennej nazwa nadawana jest kolejno warto kadego
elementu tej listy i kadorazowo wykonywana jest lista
polece. Jeeli pominito in sowo, 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 elementw nastpujcych po in
daje w wyniku pust list, to nie s wykonywane adne polece-
nia 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 ktre z wyrae, to zachowuje si ono tak, jakby
przyjmowao warto 1. Zwracanym kodem jest kod zakoczenia
ostatniego wykonanego polecenia listy, lub fasz jeli ktre
z wyrae jest niepoprawne.
select nazwa [ in sowo ] ; do lista ; done
Interpretowana jest lista sw nastpujcych po in, tworzc
list elementw. Zestaw zinterpretowanych sw wypisywany
jest na standardowym wyjciu, kade poprzedzone liczb
kolejn. Jeli pominito in sowo, to wypisywane s parametry
pozycyjne (zobacz PARAMETRY poniej). Nastpnie wywietlana
jest zachta PS3 i czytany jest wiersz ze standardowego
wejcia. Jeeli wiersz skada si z liczby odpowiadajcej jed-
nemu z wywietlonych sw, to zmiennej nazwa przypisywana
jest warto tego sowa. Jeli wiersz jest pusty, sowa i
zachta wywietlane s ponownie. Jeeli odczytano EOF, to
polecenie koczy prac. Kada inna warto powoduje, e nazwie
zostanie przypisany acuch pusty. Odczytany wiersz
zachowywany jest w zmiennej REPLY. lista wykonywana jest
po kadym wyborze, dopki nie zostanie wykonane polecenie
break. Kodem zakoczenia select jest kod zakoczenia
ostatniego wykonanego polecenia listy lub zero jeli nie
wykonano adnych polece.
case sowo in [ [(] wzorzec [ | wzorzec ] ... ) lista ;; ] ...
esac
Polecenie case najpierw interpretuje sowo i prbuje dopa-
sowa uzyskany wynik kadego z wzorcw po kolei, posugujc si
tymi samymi reguami 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 prby dopasowania pozostaych wzorcw. Jeli aden
ze wzorcw nie pasuje do kodem zakoczenia jest zero. W
przeciwnym razie jest rwny 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 ktrej wynosi 0, to
wykonywana jest lista then i polecenie jest koczone.
Jeeli nie wystpi aden z powyszych przypadkw, to wykony-
wana jest lista wystpujca po klauzuli else, jeli takowa
istnieje. Kodem zakoczenia jest kod ostatniego wykonanego
polecenia listy lub zero jeli aden z warunkw nie okaza si
prawdziwy.
while lista; do lista; done
until lista; do lista; done
Polecenie while powtarza wykonywanie listy podanej po do
tak dugo, jak dugo ostatnie polecenie listy while zwraca
zerowy kod zakoczenia. Polecenie until dziaa identycznie
jak while, poza tym, e warunek jest zanegowany: do lista
wykonywane jest tak dugo, jak dugo ostatnie polecenie
listy until zwraca niezerowy kod zakoczenia. Kod
zakoczenia polece while i until jest rwny kodowi
zakoczenia ostatniego z wykonanych polece listy do lub
zeru jeli adne nie zostao wykonane.
[ function ] nazwa () { lista; }
Definuje to funkcj nazwan nazwa. Ciaem 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 ciaa. (Zobacz FUNKCJE poniej.)
W powoce nie-interaktywnej lub w powoce interaktywnej, w ktrej
wczono opcj interactive_comments do opcji wbudowanych
shopt(zobacz WBUDOWANE POLECENIA POWOKI poniej) sowo rozpoczyna-
jce si od znaku # powoduje, e sowo to i wszystkie pozostae znaki
w tym wierszu bd ignorowane. Powoka interaktywna bez wczonej
opcji interactive_comments nie pozwala na komentarze. Opcja
interactive_comments jest domylnie wczona w powokach interakty-
wnych.
Cytowanie suy do usuwania specjalnego znaczenia dla powoki
pewnych znakw lub sw. Cytowanie mona stosowa do wyczania spec-
jalnego traktowania znakw specjalnych, zapobiegania rozpoznawa-
niu sw zastrzeonych jako takich oraz do zapobiegania podstawia-
niu parametrw.
Kady z metaznakw podanych powyej w DEFINICJACH posiada dla
powoki specjalne znaczenie i musi by cytowany, jeli ma oznacza
samego siebie.
Gdy uywane s funkcje interpretacji historii polece, znak inter-
pretacji historii, zwykle !, musi by cytowany, jeli chce si
unikn interpretacji historii.
Istniej trzy mechanizmy cytowania: znak specjalny(escapecharac-
ter), apostrofy (pojedyncze cudzysowy) i cudzysowy zwyke (pod-
wjne).
Niecytowany odwrotny ukonik (\) jest znakiem specjalnym. Chroni
on przed interpretacj dosown 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 wej-
ciowego i w efekcie ignorowana).
Ujcie znakw w apostrofy chroni dosowne wartoci kadego z nich.
Apostrof nie moe pojawi si pomidzy innymi apostrofami, nawet
jeli jest poprzedzony odwrotnym ukonikiem.
Ujcie znakw w cudzysowy chroni dosowne wartoci kadego z nich, za
wyjtkiem $, ` i \. Znaki $ i ` zachowuj swe specjalne znaczenie
wewntrz cudzysoww. Odwrotny ukonik zachowuje specjalne znaczenie
tylko, gdy wystpuje po nim jeden z poniszych znakw: $, `, ", \
lub <nowalinia>. Cudzysw moe by cytowany wewntrz cudzysoww
przez poprzedzenie go odwrotnym ukonikiem.
Parametry specjalne * i @ posiadaj specjalne znaczenie wewntrz
cudzysoww (zobacz PARAMETRY poniej).
Sowa postaci $'acuch' traktowane s specjalnie. Sowo takie inter-
pretowane jako acuch, w ktrym znaki poprzedzone odwrotnym
ukonikiem zastpowane s wedug standardu ANSI C. Sekwencje spec-
jalne z odwrotnym ukonikiem, jeli wystpuj, dekodowane s nastpu-
jco:
\a alarm (dzwonek)
\b backspace
\e znak escape
\f znak wysuwu strony (form feed)
\n znak nowej linii (new line)
\r powrt karetki (carriage return)
\t tabulacja pozioma (horizontal tab)
\v tabulacja pionowa (vertical tab)
\\ odwrotny ukonik (backslash)
\' apostrof
\nnn omiobitowy znak, ktrego wartoci jest semkowa
liczba nnn (jedna do trzech cyfr)
\xnnn omiobitowy znak, ktrego wartoci jest szesnastkowa
liczba nnn (jedna do trzech cyfr szesnastkowych)
Przetumaczony wynik jest pojedynczo cytowany, tak jakby nie byo
znaku dolara.
Ujty w cudzysowy acuch poprzedzony znakiem dolara ($) spowoduje,
e acuch zostanie zinterpretowany zgodnie z biecymi ustawieniami
regionalnymi (locale). Jeli ustawione s one na C lub POSIX, to
znak dolara jest ignorowany. Jeeli acuch jest tumaczony i
zamieniany, to zastpienie jest podwjnie cytowane.
Parametr jest elementem przechowujcym wartoci. Moe on by nazw,
liczb lub jednym ze znakw specjalnych podanych poniej w sekcji
Parametry specjalne. Dla celw powoki zmienna jest parametrem
oznaczanym przez nazw. Zmienna posiada warto i zero lub wicej
atrybutw. Warto atrybutom przypisuje si za pomoc polecenia wbu-
dowanego declare (zobacz opis tego polecenia poniej, w sekcji
WBUDOWANE POLECENIA POWOKI).
Parametr jest ustawiony jeli przypisano mu warto. acuch pusty
jest poprawn wartoci. Po ustawieniu zmiennej, moe by ona
uniewaniona wycznie przez uycie wbudowanego polecenia unset
(zobacz poniej WBUDOWANE POLECENIA POWOKI).
Do zmiennej mona wykona przypisanie przy pomocy instrukcji
postaci
nazwa=[warto]
Jeeli nie podano wartoci, to zmiennej przypisywany jest acuch
pusty. Wszystkie wartoci przechodz przez interpretacj tyld, pod-
stawianie parametrw, interpretacj zmiennych, podstawianie wynikw
polece, interpretacj wyrae arytmetycznych i usuwanie cytowa
(zobacz poniej INTERPRETACJA). Jeeli zmienna ma ustawiony atry-
but integer (cakowita), to warto podlega interpretacjom wyrae
arytmetycznych, nawet jeli nie uyto interpretacji $((...)).
Zobacz poniej Interpretacja wyrae arytmetycznych. Nie jest
wykonywane dzielenie na sowa, z wyjtkiem "$@", jak wyjaniono to
poniej w sekcji Parametry specjalne. Nie jest wykonywane rozwi-
janie nazw plikw. 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
argumentw powoki (w czasie jej wywoania). Wartoci te mog by
ponownie nadawane przy pomocy wbudowanego polecenia set. Do
parametrw pozycyjnych nie mona wykona przypisania przy pomocy
instrukcji przypisania. Parametry pozycyjne s tymczasowo zast-
powane podczas wykonywania funkcji powoki (zobacz poniej
FUNKCJE). Jeeli interpretowany jest parametr pozycyjny okrelany
wicej ni jedn cyfr, to musi by ujty w nawiasy (zobacz poniej
INTERPRETACJA).
Parametry specjalne
Powoka kilka parametrw traktuje specjalnie. Do parametrw tych
mona si wycznie odwoywa; nie jest dozwolone przypisywanie im
wartoci.
* Interpretowane jest jako parametry pozycyjne, poczwszy od
pierwszego. Gdy interpretacja pojawia si wewntrz cud-
zysoww, to parametr ten interpretowany jest jako poje-
dyncze sowo z wartociami kadego z parametrw rozdzielonymi
pierwszym znakiem zmiennej specjalnej IFS. To znaczy,
"$*" jest rwnowane "$1c$2c...", gdzie c jest pierwszym
znakiem wartoci zmiennej IFS. Jeeli IFS nie jest ustaw-
ione, to parametry oddzielane s spacjami. Jeli IFS jest
acuchem pustym, to parametry s ze sob poczone bez
rozdzielajcych je separatorw.
@ Interpretowane jako parametry pozycyjne, poczwszy od
pierwszego. Gdy interpretacja pojawia si wewntrz cud-
zysoww, to kady parametr interpretowany jest jako odrbne
sowo. To znaczy, "$@" jest rwnowane "$1" "$2" ... Jeli
nie ma adnych parametrw pozycyjnych, "$@" i $@ interpre-
towane s jako nic (tj. s usuwane).
# Interpretowane jako liczba parametrw pozycyjnych, podana
dziesitnie.
? Interpretowane jako kod zakoczenia ostatnio wykonanego
potoku pierwszoplanowego.
- Interpretowane jako biece flagi opcji, takie jakie zostay
podane podczas wywoania, ustawione przy pomocy wbu-
dowanego polecenia set lub ustawione przez sam powok (tak
jak opcja -i).
$ Interpretowany jest jako identyfikator procesu powoki. W
podpowoce (), interpretowany jest jako ID procesu biecej
powoki, nie za podpowoki.
! Interpretowany jako ID procesu ostatnio wykonywanego
polecenia ta (polecenia asynchronicznego).
0 Interpretowany jako nazwa powoki lub skryptu powoki.
Ustawiane jest to na etapie inicjowania powoki. Jeeli
bash wywoywany zosta z plikiem polece, to $0 ustawiane
jest na nazw tego pliku. Jeli bash zosta uruchomiony z
opcj -c, to $0 jest ustawiane na pierwszy argument po
acuchu, jaki ma zosta wywoany, jeli taki wystpuje. W
przeciwnym wypadku, ustawiany jest na nazw pliku uyt do
wywoania bash, jak podaje argument zerowy.
_ Podczas uruchamiania powoki, ustawiany na bezwzgldn nazw
powoki lub wykonywanego skryptu powoki przekazanego w
licie argumentw. Nastpnie, interpretowany jest jako
ostatni argument poprzedniego polecenia, po interpre-
tacji. Ustawiany rwnie na pen nazw pliku kadego polece-
nia wykonanego i umieszczonego w rodowisku eksportowanym
do tego polecenia. Podczas sprawdzania poczty parametr
ten przechowuje nazw aktualnie sprawdzanego pliku poczty.
Zmienne powoki
Powoka ustawia nastpujce zmienne:
BASH Interpretowane jako pena nazwa pliku uyta do wywoania
tego przebiegu bash .
BASH_VERSINFO
Zmienna tablicowa tylko do odczytu, ktrej elementy zaw-
ieraj informacje o wersji uruchomionego bash. Wartoci
przypisane elementom tablicy s nastpujce:
BASH_VERSINFO[0] Gwny numer wersji, wydanie
(release).
BASH_VERSINFO[1] Poboczny numer wersji (version).
BASH_VERSINFO[2] Poziom at (patch level).
BASH_VERSINFO[3] Wersja kompilatu (build version).
BASH_VERSINFO[4] Status wydania (np. beta1).
BASH_VERSINFO[5] Warto MACHTYPE.
BASH_VERSION
Interpretowane jako acuch opisujcy wersj uruchomionego
bash.
COMP_CWORD
Indeks w ${COMP_WORDS} sowa zawierajcego biec pozycj kur-
sora. Zmienna ta jest dostpna wycznie w funkcjach powoki
wywoanych przez usugi programowalnego uzupeniania (zobacz
poniej Programowalne uzupenianie).
COMP_LINE
Biecy wiersz polece. Ta zmienna jest dostpna tylko w
funkcjach powoki i poleceniach zewntrznych wywoywanych
przez usugi programowalnego uzupeniania (zobacz poniej
Programowalne uzupenianie).
COMP_POINT
Indeks biecej pozycji kursora wzgldem pocztku biecego
polecenia. Jeeli kursor jest na kocu biecego polecenia,
to warto tej zmiennej jest rwna ${#COMP_LINE}. Ta zmi-
enna jest dostpna tylko w funkcjach powoki i poleceniach
zewntrznych wywoywanych przez usugi programowalnego uzu-
peniania (zobacz poniej Programowalne uzupenianie).
COMP_WORDS
Zmienna tablicowa (patrz Tablice poniej) skadajca si z
pojedynczych sw z aktualnego wiersza polece. Zmienna ta
jest dostpna wycznie w funkcjach powoki wywoanych przez
usugi programowalnego uzupeniania (zobacz poniej Pro-
gramowalne uzupenianie).
DIRSTACK
Zmienna tablicowa (zobacz Tablice poniej) zawierajca biec
zawarto stosu katalogw. Katalogi pojawiaj si na stosie w
kolejnoci, w jakiej s wywietlane przez wbudowane dirs.
Przypisanie do elementw tej zmienej tablicowej moe posuy
do zmiany katalogw ju wystpujcych na stosie, ale do doda-
nia i usunicia katalogw musz by uyte wbudowane pushd i
popd. Przypisanie wartoci tej zmiennej nie zmieni
biecego katalogu. Jeli DIRSTACK jest uniewanione, to
traci swe specjalne waciwoci, nawet jeeli jest nastpnie
ponownie ustawione.
EUID Interpretowane jako efektywny identyfikator biecego
uytkownika, inicjowane przy uruchamianiu powoki. Zmienna
ta jest tylko do odczytu.
FUNCNAME
Nazwa aktualnie wykonywanej funkcji powoki. Zmienna ta
istnieje tylko podczas wykonywania funkcji powoki. Prby
przypisywania jej wartoci nie odnosz efektu i zwracaj kod
bdu. Jeeli FUNCNAME jest uniewanione, to traci swe spec-
jalne waciwoci, nawet jeeli jest nastpnie ponownie
ustawione.
GROUPS Zmienna tablicowa zawierajca list grup, ktrych czonkiem
jest biecy uytkownik. Prby przypisywania jej wartoci nie
odnosz efektu i zwracaj kod bdu. Jeeli GROUPS jest
uniewanione, to traci swe specjalne waciwoci, nawet jeeli
jest nastpnie ponownie ustawione.
HISTCMD
Licznik historii (indeks na licie historii polece)
biecego polecenia. Jeeli HISTCMD jest uniewanione, to
traci swe specjalne waciwoci, nawet jeeli jest nastpnie
ponownie ustawione.
HOSTNAME
Automatycznie ustawiane na nazw aktualnego hosta.
HOSTTYPE
Automatycznie ustawiane na acuch unikalnie opisujcy typ
maszyny, na ktrej jest wykonywany bash. Warto domylna
zaley od systemu.
LINENO Przy kadym odwoaniu do tego parametru powoka zastpuje
jego warto liczb dziesitn reprezentujc aktualny kolejny
numer wiersza (poczynajc od 1) skryptu lub funkcji. Nie
zapewnia si, by warto ta miaa znaczenie poza skryptem bd
funkcj. Jeli LINENO jest uniewanione, to traci swe spec-
jalne waciwoci, nawet jeeli jest nastpnie ponownie ustaw-
ione.
MACHTYPE
Automatycznie ustawiane na acuch w peni opisujcy typ sys-
temu, na ktrym jest wykonywany bash, w standardowym for-
macie GNU cpu-firma-system. Warto domylna zaley od sys-
temu.
OLDPWD Poprzedni katalog roboczy ustawiony poleceniem cd.
OPTARG Warto ostatniego, bdcego opcj, argumentu przetworzonego
przez wbudowane polecenie getopts (zobacz poniej WBU-
DOWANE POLECENIA POWOKI).
OPTIND Numer (indeks) nastpnego argumentu, jaki ma zosta
przetworzony przez wbudowane polecenie getopts (zobacz
poniej WBUDOWANE POLECENIA POWOKI).
OSTYPE Automatycznie ustawiane na acuch opisujcy system opera-
cyjny, w ktrym jest wykonywany bash. Warto domylna zaley
od systemu.
PIPESTATUS
Zmienna tablicowa (zobacz Tablice poniej) zwierajca list
kodw zakoczenia z procesw w ostatnio wykonywanym potoku
pierwszoplanowym (ktry moe zawiera pojedyncze polecenie).
PPID Identyfikator procesu macierzystego powoki. Zmienna ta
jest tylko do odczytu.
PWD Biecy katalog roboczy, ustawiony poleceniem cd.
RANDOM Za kadym razem, gdy nastpuje odwoanie do tego parametru,
generowana jest cakowita 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 waciwoci, nawet jeeli jest nastpnie
ponownie ustawione.
REPLY Ustawiona na wiersz wejcia odczytany wbudowanym polece-
niem read jeli nie podano adnych jego argumentw.
SECONDS
Kadorazowo, gdy wystpuje odwoanie do tego parametru,
zwracana jest liczba sekund, jakie upyny od wywoania
powoki. Jeeli do SECONDS zostanie przypisana warto, to
warto zwracana przez kolejne odwoania rwna liczbie sekund
od czasu przypisania plus przypisana warto. Jeeli SEC-
ONDS jest uniewanione, to traci swe specjalne waciwoci,
nawet jeeli jest nastpnie ponownie ustawione.
SHELLOPTS
Lista, rozdzielonych dwukropkami, wczonych opcji powoki.
Kade sowo listy jest poprawnym argumentem opcji -o wbu-
dowanego polecenia set (zobacz WBUDOWANE POLECENIA POWOKI
poniej). Opcje pojawiajce si w SHELLOPTS to te, ktre s
zgaszane jako wczone (on) przez set -o. Jeli zmienna ta
istnieje w rodowisku podczas uruchamiania bash, to kada z
opcji powoki wystpujca na tej licie zostanie wczona przed
odczytem jakichkolwiek plikw 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 powoki. Zmienna ta jest
tylko do odczytu.
Ponisze zmienne s uywane przez powok. W niektrych 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
powoki, jak w ~/.bashrc. Warto BASH_ENV podlega inter-
pretacji parametrw, podstawianiu wynikw polece i inter-
pretacjom wyrae arytmetycznych przed interpretacj jej
jako nazwy pliku. Zmienna PATH nie jest uywana do
znalezienia pliku o powstaej w ten sposb nazwie.
CDPATH cieka wyszukiwania dla polecenia cd. Jest to lista
rozdzielonych dwukropkami katalogw, w ktrych powoka szuka
katalogw docelowych podanych przez polecenie cd.
Przykadow wartoci jest ,,.:~:/usr''.
COLUMNS
Uywana przez polecenie wbudowane select do wyznaczenia
szerokoci terminala przy wypisywaniu list wyboru. Ustaw-
iana automatycznie po otrzymaniu SIGWINCH.
COMPREPLY
Zmienna tablicowa, z ktrej bash czyta moliwe uzupenienia
tworzone przez funkcj powoki wywoan przez usug pro-
gramowalnego uzupeniania (zobacz poniej Programowalne
uzupenianie).
FCEDIT Domylny edytor dla wbudowanego polecenia fc.
FIGNORE
Lista rozdzielonych dwukropkami przyrostkw, jakie maj by
ignorowane podczas uzupeniania nazw plikw (zobacz READ-
LINE poniej). Nazwa pliku o przyrostku pasujcym do jed-
nej z pozycji FIGNORE wyczana jest z listy dopasowanych
nazw plikw. Przykadow wartoci jest ,,.o:~''.
GLOBIGNORE
Lista rozdzielonych dwukropkami wzorcw definiujcych
zestaw nazw plikw, jakie maj by ignorowane podczas rozwi-
jania nazw plikw. Jeeli plik pasujcy do wzorca rozwija-
jcego nazw ciekow pasuje rwnie do ktrego z wzorcw w GLO-
BIGNORE, 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 czy obie te moliwoci. Jeli zmienna ta nie
jest zdefiniowana lub ma warto inn od powyszych, to
wszystkie wiersze przeczytane przez analizator skadni
zachowywane s w licie historii, stosownie do wartoci
HISTIGNORE. Funkcja tej zmiennej jest zastpiona przez
HISTIGNORE. Drugi i kolejne wiersze zoonego polecenia
wielowierszowego nie s sprawdzane i s dodawane do his-
torii bez wzgldu na warto
HISTFILE
Nazwa pliku, w ktrym 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 powoki 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 zawiera
wicej wierszy. Domyln wartoci jest 500. Plik historii
jest take obcinany do tego rozmiaru po zapisaniu go w
czasie koczenia pracy przez powok interaktywn.
HISTIGNORE
Lista rozdzielonych dwukropkami wzorcw sucych do decy-
dowania, jakie wiersze polece powinny by zachowane w
licie historii. Kady z wzorcw zakotwiczony jest na
pocztku wiersza i musi pasowa do caego wiersza (nie jest
dodawane adne niejawne `*'). Kady z wzorcw sprawdzany
jest z biecym wierszem po wykonaniu kontroli okrelonych
przez HISTCONTROL. Oprcz zwykych znakw dopasowywania
wzorcw uywanych przez powok, `&' dopasowuje poprzedni
wiersz historii. Litera `&' mona uzyska poprzedzajc go
odwrotnym ukonikiem; odwrotny ukonik jest usuwany przed
prb dopasowania. Druga i kolejne wiersze zoonego polece-
nia 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 wbu-
dowanego polecenia cp. Warto tej zmiennej wykorzystywana
jest te przy wykonywaniu interpretacji tyld.
HOSTFILE
Zawiera nazw pliku o tym samym formacie co /etc/hosts
ktry pownien by czytany, gdy powoka potrzebuje uzupeni
nazw hosta. List moliwych uzupenie mona zmienia podczas
pracy powoki. Nastpnym razem, gdy wykonywana jest prba
uzupenienia nazwy hosta bash dodaje zawarto nowego pliku
do ju istniejcej listy. Jeeli HOSTFILE jest ustawione,
ale nie posiada wartoci, bash usiuje uzyska list moliwych
uzupenie nazw hostw czytajc /etc/hosts Gdy HOSTFILE jest
uniewaniane, lista hostw jest czyszczona.
IFS Wewntrzny Separator Pl (Internal Field Separator) uywany
do podziau na sowa po interpretacjach i dzielenia wierszy
na sowa we wbudowanym poleceniu read. Jego domyln
wartoci jest ,,<spacja><tabulacja><nowalinia>''.
IGNOREEOF
Steruje dziaaniem powoki interaktywnej przy otrzymaniu
przez ni znaku EOF jako jedynego znaku wejcia. Jeeli jest
ustawiona, to jej warto jest liczb kolejnych znakw 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 powoce koniec wprowadzanych
danych.
INPUTRC
nazwa pliku startowego dla readline, uniewaniajca domyln
~/.inputrc (zobacz READLINE poniej).
LANG Suy do wyznaczania kategorii locale dla wszystkich kate-
gorii nie wyszczeglnionych przez zmienne rozpoczynajce si
od znakw LC_.
LC_ALL Zmienna ta uniewania warto LANG i wszelkich innych zmien-
nych LC_ okrelajcych kategorie locale.
LC_COLLATE
Ta zmienna wyznacza kolejno (collation order) uywan przy
sortowaniu wynikw rozwijania nazw plikw, decyduje te o
zachowaniu wielu wyrae, klas rwnowanych i sekwencje sor-
towania (collating sequences) w rozwijaniu nazw plikw i
dopasowywaniu wzorcw.
LC_CTYPE
Ta zmienna decyduje o interpretacji znakw i zachowaniu si
klas znakw wewntrz rozwijania nazw plikw i dopasowywania
wzorcw.
LC_MESSAGES
Ta zmienna decyduje o ustawieniu locale uywanym do
tumaczenia ujtych w cudzysowy acuchw poprzedzonych
znakiem $.
LC_NUMERIC
Ta zmienna okrela kategori locale uywan do formatowania
liczb.
LINES Uywana przez polecenie wbudowane select do wyznaczenia
dugoci 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, powoka wykonuje to przed wywietleniem
gwnej zachty. Jeli zmienna ta nie jest ustawiona, to
powoka wycza sprawdzanie poczty.
MAILPATH
Lista rozdzielonych dwukropkami nazw plikw, w jakich ma
by sprawdzana poczta. Mona poda komunikat, jaki ma zosta
wywietlony, gdy do danego pliku przybdzie wiadomo pocz-
towa, przez oddzielenie nazwy pliku od komunikatu znakiem
'?'. Uyte w tekcie komunikatu, $_ interpretowane jest
jako nazwa biecego pliku pocztowego. Przykad:
MAILPATH='/var/mail/bfox?"You have mail":~/shell-mail?"$_
has mail!"'
Bash zapewnia tej zmiennej warto domyln, ale pooenie
plikw pocztowych uytkownika, jakim si posuguje zaley od
systemu (np. /var/mail/$USER).
OPTERR Jeeli ustawiono na warto 1, bash wywietla komunikaty o
bdach generowanych przez wbudowane polecenie getopts
(zobacz WBUDOWANE POLECENIA POWOKI poniej). OPTERR
inicjowane jest na 1 kadorazowo, gdy wywoywana jest
powoka lub wykonywany jest skrypt powoki.
PATH cieka wyszukiwania polece. Jest to lista rozdzielanych
dwukropkami katalogw, w ktrych powoka szuka polece
(zobacz WYKONYWANIE POLECE poniej). Domylna cieka zaley
od systemu i ustawiana jest przez administratora instalu-
jcego 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 powoka przed odczytem plikw startowych
wchodzi w tryb posix, tak jakby przy jej wywoaniu podano
opcj --posix. Jeli zmienna ta zostanie ustawiona podczas
pracy powoki, to bash wcza tryb posix, tak jakby zostao
wykonane polecenie set -o posix.
PROMPT_COMMAND
Jeeli jest ustawiona, to jej warto jest wykonywana jwko
polecenie przed kadym wysaniem zachty gwnej.
PS1 Warto tego parametru jest interpretowana (zobacz poniej
ZACHTA) i uywana jako gwny acuch zachty. Jego wartoci
domyln jest ,,\s-\v\$ ''.
PS2 Warto tego parametru jest interpretowana jak PS1 i uywana
jako wtrny (secondary) acuch zachty. Domylnie jest to ,,>
''.
PS3 Warto tego parametru suy jako zachta w poleceniu select
(zobacz powyej GRAMATYKA POWOKI).
PS4 Warto tego parametru interpretowana jest jak PS1 i wyp-
isywana przed kadym poleceniem wywietlanym przez bash
podczas ledzenia wykonywania. Pierwszy znak PS4, w razie
potrzeby, powtarzany jest wielokrotnie, by wskaza wiele
pozionw zagniedenia. Domylnie jest to ,,+ ''.
TIMEFORMAT
Warto tego parametru suy jako acuch formatu okrelajcego,
jak powinna by wywietlana informacja o czasach dla potokw
poprzedzonych sowem zastrzeonym time. Znak % rozpoczyna
sekwencj specjaln, ktra jest interpretowana jako warto
czasu lub inna informacja. Sekwencje specjalne i ich
znaczenie s nastpujce; nawiasy kwadratowe opisuj czci
opcjonalne.
%% Litera %.
%[p][l]R Czas, jaki upyn, w sekundach.
%[p][l]U Liczba sekund, jakie CPU zuy w trybie uytkown-
ika.
%[p][l]S Liczba sekund, jakie CPU zuy w trybie syste-
mowym.
%P Procent wykorzystania CPU, liczony jako (%U +
%S) / %R.
Opcjonalne p jest cyfr okrelajc dokadno (precision),
liczb cyfr uamkowych po kropce dziesitnej. Warto zero
powoduje, e nie bdzie wywietlana ani kropka dziesitna ani
cz uamkowa. 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 duszy (longer) format wynikw, zaw-
ierajcy minuty, w postaci MMmSS.FFs. O tym, czy wystpuje
uamkowa cz sekund decyduje warto p.
Jeeli zmienna ta nie jest ustawiona, to bash dziaa tak,
jakby miaa ona warto
$'\nreal\t%3lR\nuser\t%3lU\nsys%3lS'. Jeeli jej wartoci
jest pusty acuch, to nie jest wywietlana adna informacja
o czasach (timing). Podczas wywietlania acucha 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 powoka ma czeka na wprowadzenie danych po wywietle-
niu zachty. Bash koczy prac po odczekaniu tego czasu
jeli dane nie pojawiy si.
auto_resume
Zmienna ta steruje sposobem interakcji powoki z uytkown-
ikiem 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
acucha, wybierane jest zadanie, do ktrego ostatnio
sigano. Nazwa zatrzymanego zadania, w tym kontekcie,
jest wierszem polece uytym do jego uruchomienia. Jeli
posiada warto exact, to podany acuch musi pasowa dokadnie
do nazwy zatrzymanego zadania; Jeli jest ustawione na
substring, to podany acuch powinien pasowa do podacucha
nazwy zatrzymanego zadania. Warto substring zapewnia
funkcjonalno analogiczn do identyfikatora zadania %?
(zobacz STEROWANIE ZADANIAMI poniej). Jeli ustawiono inn
warto, to podany acuch musi by przedrostkiem nazwy
zatrzymanego zadania; zapewnia to funkcjonalno analogiczn
do identyfikatora zadania %.
histchars
Dwa lub trzy znaki sterujce interpretacj historii i
podziaem na leksemy (zobacz poniej INTERPRETACJA
HISTORII). Pierwszy znak jest znakiem interpretacjihis-
torii, sygnalizujcym pocztek interpretacji historii,
zwykle `!'. Drugi znak jest znakiem szybkiego podstawia-
nia , ("quick substitution"), sucym jako skrt do
powtrnego uruchamiania poprzednio wprowadzonego polece-
nia, podstawiajcym w poleceniu jeden acuch za inny.
Domylnym znakiem szybkiego podstawiania jest `^'.
Opcjonalny, trzeci znak jest znakiem wskazujcym, e
pozostaa cz wiersza, w ktrym wystpuje on jako pierwszy
znak sowa, jest komentarzem. Zwykle znakiem tym jest
`#'. Znak komentarza historii powoduje, e dla pozostaych
sw wiersza podstawianie historii jest pomijane.
Niekoniecznie powoduje to traktowanie reszty wiersza jako
komentarza przez analizator skadni powoki.
Tablice
Bash udostpnia zmienne tablicowe jednowymiarowe. Jako tablica
moe zosta uyta dowolna zmienna; wbudowane declare jawnie explic-
itly zadeklaruje tablic. Nie ma maksymalnego rozmiaru tablic,
ani wymagania, by wszystkie jej elementy byy indeksowane czy
przypisywane w sposb cigy. Tablice indeksowane s przy pomocy
liczb cakowitych, poczwszy od zera.
tablica tworzona jest automatycznie jeli wykonywane jest przyp-
isanie do jakiej zmiennej przy pomocy skadni
nazwa[wskanik]=warto. Wskanik tablicy traktowany jest jako
wyraenie arytmetyczne, ktre musi po interpretacji da liczb wiksz
bd rwn zero. Chcc jawnie zadeklarowa tablic, uyj declare -a
nazwa (zobacz WBUDOWANE POLECENIA POWOKI poniej). declare -a
nazwa[wskanik] jest rwnie akceptowane; wskanik jest wwczas
ignorowany. Dla zmiennej tablicowej mona poda atrybuty przy
pomocy wbudowanych declare i readonly. Kady z atrybutw
stosowany jest do wszystkich elementw tablicy.
Przypisania do tablic wykonywane s przy pomocy przypisa zoonych
postaci nazwa=(warto1 ... warton), gdzie kada warto ma posta
[wskanik]=acuch. Wymagany jest wycznie acuch. Jeeli podano
opcjonalne nawiasy i wskanik, to warto jest przypisywana
wskazanemu elementowi tablicy; w przeciwnym wypadku warto przyp-
isywana jest elementowi o indeksie o jeden wikszym od ostatniego
elementu z przypisan wartoci. Indeksy ropoczynaj si od zera.
Skadnia ta jest akceptowana take przez wbudowane declare.
Przypisania do pojedynczych elementw tablicy mona wykonywa przy
pomocy skadni nazwa[wskanik]=warto wprowadzonej powyej.
Do elementu tablicy mona odwoywac si uywajc ${nazwa[wskanik]}.
Nawiasy s wymagane, by unikn konfliktw z rozwijaniem nazw plikw.
Jeli wskanikiem jest @ lub *, to powysze sowo interpretowane
jest jako wszystkie elementy nazwy. Wskaniki te rni si tylko
wtedy, gdy sowo pojawia si w cudzysowach. Jeli sowo ujto w cud-
zysowy, to ${nazwa[*]} interpretowane jest jako pojedyncze sowo
o wartoci wszystkich elementw tablicy rozdzielonych pierwszym
znakiem zmiennej specjalnej IFS, za ${nazwa[@]} interpretuje
kady z elementw nazwa jako odrbne sowo. Jeli brak jest elementw
tablicy, to ${nazwa[@]} interpretowane jest jako nic. Jest to
zachowanie analogiczne do interpretacji parametrw specjalnych *
i @ (zobacz powyej Parametry specjalne). ${#nazwa[wskanik]}
interpretowane jest jako dugo ${nazwa[wskanik]}. Jeli wskanikiem
jest * lub @, to interpretacj jest liczba elementw w tablicy.
Odwoywania si do zmiennej tablicowej bez podania wskanika jest
rwnowane odwoaniu do elementu numer zero.
Do niszczenia tablic suy 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 ca tablic.
Kade z wbudowanych declare, local i readonly akceptuje opcj -a
do okrelania tablic. Wbudowane read akceptuje opcj -a do przyp-
isywania tablicy listy sw przeczytanych ze standardowego wejcia.
set i declare wywietlaj wartoci tablicowe w sposb umoliwiajcy
ponowne ich uycie w przypisaniach.
Interpretacja wykonywana jest na wierszu polece po jego podziale
na sowa. Istnieje siedem rodzajw wykonywanych interpretacji:
interpretacja nawiasw (brace expansion), interpretacja tyld
(tilde expansion), podstawianie parametrw i interpretacja zmien-
nych (parameter and variable expansion), podstawienie wynikw
polece (command substitution), interpretacja wyrae arytmety-
cznych (arithmetic expansion), podzia na sowa (word splitting) i
rozwinicie nazw plikw (pathname expansion).
Kolejno interpretacji: interpretacja nawiasw, interpretacja
tyld, podstawianie parametrw, interpretacja zmiennych i wyrae
arytmetycznych i podstawianie wynikw polece (wykonywane od lewej
do prawej), podzia na sowa i rozwijanie nazw ciekowych.
Na systemach potraficych to obsuy, istnieje dodatkowa dostpna
interpretacja: podstawienie wynikw procesw (process substitu-
tion).
Tylko interpretacja nawiasw, dzielenie na sowa i rozwinicie nazw
plikw mog zmieni liczb sw interpretowanego wyraenia; pozostae
interpretacje rozwijaj pojedyncze sowo w pojedyncze sowo.
Jedynymi wyjtkami s interpretacje "$@" i "${nazwa[@]}" wyjanione
powyej (zobacz PARAMETRY).
Interpretacja nawiasw
Interpretacja nawiasw jest mechanizmem, przez ktry mog by gen-
erowane dowolne acuchy. Mechanizm ten przypomina rozwinicia
nazw plikw, ale generowane nazwy plikw nie musz okrela plikw
istniejcych. Wzorce, majce podlega interpretacji nawiasw maj
posta opcjonalnej preambuy, po ktrej wystpuj serie separowanych
przecinkami acuchw pomidzy par nawiasw klamrowych, po ktrych
nastpuje opcjonalny dopisek(postscript). Preambua stanowi prze-
drostek dla kadego z acuchw zawartych w nawiasach, a dopisek
dodawany jest do kadego acucha wynikowego, przy interpretacji od
lewej do prawej.
Interpretacja nawiasw moe by zagniedana. Wyniki kadego zinter-
pretowanego acucha nie s sortowane; zachowywana jest kolejno od
lewej do prawej. Na przykad, a{d,c,b}e interpretowane jest jako
`ade ace abe'.
Interpretacja nawiasw wykonywana jest przed innymi rodzajami
interpretacji, a znaki o specjalnym znaczeniu dla innych inter-
pretacji s zachowywane w wyniku. Jest cile tekstowa. Bash nie
stosuje adnej interpretacji skadniowej do kontekstu interpre-
tacji czy tekstu pomidzy nawiasami.
Poprawnie zbudowana interpretacja nawiasw musi zawiera niecy-
towany nawias otwierajcy i zamykajcy i co najmniej jeden niecy-
towany przecinek. Wszelkie niepoprawnie skonstruowane interpre-
tacje nawiasw s pozostawiane bez zmian. { lub , mona cytowa
przy pomocy odwrotnego ukonika, co chroni je przed przyjmowaniem
za cz wyraenia nawiasowego. Dla uniknicia konfliktu z interpre-
tacj parametrw, acuch ${ nie jest traktowany jako speniajcy
warunki interpretacji nawiasw.
Typowym zastosowaniem tej konstrukcji jest skrt, wtedy gdy
wsplny przedrostek acuchw do utworzenia jest duszy ni w powyej
podanym przykadzie, np.:
mkdir /usr/local/src/bash/{old,new,dist,bugs}
lub
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
Interpretacja nawiasw wprowadza niewielk niezgodno z histo-
rycznymi wersjami sh. sh nie traktuje nawiasw otwierajcych i
zamykajcych w specjalny sposb gdy pojawiaj si one jako cz sowa,
i zachowuje je w wyniku. W bash konsekwencj interpretacji
nawiasw jest usuwanie nawiasw ze sw. Na przykad, sowo wprowad-
zone do sh jako plik{1,2} pojawi si w identycznej postaci na
wyjciu. To samo sowo po interpretacji przez bash daje plik1
plik2. Jeeli podana jest cisa zgodno z sh, uruchom bash z opcj
+B lub wycz interpretacj nawiasw przy pomocy opcji +B polecenia
set (zobacz WBUDOWANE POLECENIA POWOKI poniej).
Interpretacja tyldy
Jeeli sowo 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 znakw w przedrostku tyldy
nie jest cytowany, to jego znaki nastpujce po znaku tyldy trak-
towane s jako moliwa nazwa logowania (login name). Jeli ta
nazwa logowania jest acuchem pustym, to tylda zastpowana jest
wartoci parametru powoki HOME. Jeeli HOME nie jest ustawione,
to podstawiany jest za nie katalog domowy uytkownika uruchamia-
jcego powok. W przeciwnym wypadku, przedrostek tyldy zastpowany
jest katalogiem domowym skojarzonym z okrelon nazw logowania.
Jeli przedrostkiem tyldy jest `~+', to jest on zastpowany
wartoci zmiennej PWDpowoki. Jeli przedrostkiem tyldy jest `~-',
to jest on zastpowany wartoci zmiennej powoki OLDPWD, jeli jest
ona ustawiona. Jeeli wystpujce w przedrostku po tyldzie znaki
skadaj si z liczby N, opcjonalnie poprzedzonej przez `+' lub
`-', to przedrostek tyldy zastpowany jest odpowiednim elementem
stosu katalogw, jaki zostaby wywietlony przez wbudowane dirs,
wywoane z przedrostkiem tyldy jako argumentem. Jeeli w prze-
drostku tyldy znaki wystpujce po tyldzie skadaj si z liczby bez
pocztkowego `+' lub `-', to przyjmowane jest `+'.
Jeli nazwa logowania jest nieprawidowa lub interpretacja tyldy
nie powioda si, to sowo z tyld pozostaje niezmienione.
Kade z przypisa do zmiennej sprawdzane jest na obecno niecy-
towanych przedrostkw tyldy wystpujcych bezporednio po : lub =.
W tych przypadkach rwnie jest wykonywana jest interpretacja
tyldy. Na skutek tego, mona posugiwa si nazwami plikw z tyldami
w przypisaniach do PATH, MAILPATH i CDPATH, a powoka przypisze
zinterpretowan warto.
Podstawianie parametrw
Znak `$' wprowadza podstawianie parametrw, podstawianie wynikw
polece i interpretacj wyrae arytmetycznych. Podlegajca interpre-
tacji nazwa parametru lub symbol mog by ujte w nawiasy klamrowe,
ktre s opcjonalne, ale su do ochrony interpretowanej zmiennej
przed znakami, jakie wystpuj bezporednio po niej, a ktre mogyby
zosta zinterpretowane jako cz nazwy.
Gdy uywane s nawiasy, pasujcym nawiasem koczcym jest pierwszy
`}', nie chroniony przez odwrotny ukonik, nie znajdujcy si wewn-
trz cytowanego acucha 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, ktry nie
powinien by interpretowany jako cz jego nazwy.
Jeeli pierwszym znakiem parametru jest wykrzyknik, to rozpoczyna
on poziom zagniedenia zmiennej poredniej. Bash posuguje si
wartoci zmiennej utworzonej z reszty parametru jako nazw zmien-
nej; zmienna ta jest nastpnie interpretowana a w dalszym pod-
stawianiu 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 przypadkw, sowo podlega interpretacji tyldy,
podstawianiu parametrw, podstawianiu wynikw polece i
interpretacji wyrae arytmetycznych. Gdy nie przeprowadza inter-
pretacji podacuchw, bash sprawdza czy parametr nie jest pusty
lub nieustawiony;
${parametr:-sowo}
Uywa wartoci domylnych. Jeeli parametr jest nieustawiony
lub pusty, to podstawiane jest zinterpretowane sowo. W
przeciwnym razie, podstawiana jest warto parametru.
${parametr:=sowo}
Przypisuje wartoci domylne. Jeeli parametr jest
nieustawiony lub pusty, to jest mu przypisywane zinter-
pretowane sowo. Nastpnie podstawiana jest warto
parametru. Nie mona w ten sposb przypisywa wartoci
parametrom pozycyjnym ani parametrom specjalnym.
${parametr:?sowo}
Wywietla bd jeli pusty lub nieustawiony. Jeeli parametr
jest nieustawiony lub pusty, to na standardowe wyjcie bdw
zapisywane jest zinterpretowane sowo (lub komunikat o
takim wyniku, jeli brak sowa). Jeli powoka nie jest
interaktywna, to koczy prac. W przeciwnym wypadku, pod-
stawiana jest warto parametru.
${parametr:+sowo}
Uywa wartoci alternatywnej. Jeeli parametr jest
nieustawiony lub pusty, to nic nie jest podstawiane, w
przeciwnym razie podstawiane jest zinterpretowane sowo.
${parametr:offset}
${parametr:offset:dugo}
Interpretacja podacuchw. Interpretuje co najwyej dugo
znakw parametru poczynajc od znakw okrelonych przez off-
set. Jeli pominito dugo, to interpretuje podacuch
parametru poczynajc od znaku okrelonego przez offset.
dugo i offset s wyraeniami arytmetycznymi (zobacz
OBLICZANIE WYRAE ARYTMETYCZNYCH poniej). dugo musi dawa
w wyniku liczb wiksz bd rwn 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 dugo parametrw
pozycyjnych, poczwszy od offset. Jeeli parametr jest nazw
tablicy indeksowanej przez @ lub *, to wynikiem jest dugo
czonkw tablicy poczwszy od ${parametr[offset]}. Indek-
sowanie podacucha rozpoczyna si od zera, chyba e uywane s
parametry pozycyjne, wwczas indeksowanie zaczyna si od 1.
${!przedrostek*}
rozwija si w list nazw tych zmiennych, ktrych nazwy
rozpoczynaj si od przedrostka, rozdzielonych od siebie
pierwszym znakiem zmiennej specjalnej IFS.
${#parametr}
Podstawiana jest dugo, w znakach, wartoci parametru.
Jeeli parametrem jest * lub @, warto podstawiana jest
liczb parametrw pozycyjnych. Jeeli parametr jest nazw
tablicy o indeksowanej przez * lub @, warto podstawiana
jest liczb elementw tablicy.
${parametr#sowo}
${parametr##sowo}
sowo jest interpretowane tworzc wzorzec, tak samo jak
przy rozwijaniu nazw plikw. Jeeli wzorzec pasuje do
pocztku wartoci parametru, to wynikiem interpretacji jest
zinterpretowana warto parametru z usunitym najkrtszym
(przypadek ,,#'') lub najduszym (przypadek ,,##'') pasuj-
cym wzorcem. Jeeli parametrem jest @ lub *, to operacja
usunicia wzorca stosowana jest do kadego po kolei
parametru pozycyjnego, za wynikiem interpretacji jest
powstaa lista. Jeli parametr jest zmienn tablicow indek-
sowan przez @ lub *, operacja usuwania wzorca jest
przeprowadzana po kolei na kadym elemencie tablicy, za
wynikiem interpretacji jest powstaa lista.
${parametr%sowo}
${parametr%%sowo}
sowo jest interpretowane tworzc wzorzec, tak samo jak
przy rozwijaniu nazw plikw. Jeeli wzorzec pasuje do
kocowej czci zinterpretowanego parametru, wynikiem inter-
pretacji jest zinterpretowana warto parametru z usunitym
najkrtszym (przypadek ,,%'') lub najduszym (przypadek
,,%%'') pasujcym wzorcem. Jeeli parametrem jest @ lub *,
to operacja usunicia wzorca stosowana jest do kadego po
kolei parametru pozycyjnego, za wynikiem interpretacji
jest powstaa lista. Jeli parametr jest zmienn tablicow
indeksowan przez @ lub *, operacja usuwania wzorca jest
przeprowadzana po kolei na kadym elemencie tablicy, za
wynikiem interpretacji jest powstaa lista.
${parametr/wzorzec/acuch}
${parametr//wzorzec/acuch}
wzorzec jest interpretowany tworzc wzorzec, tak samo jak
przy rozwijaniu nazw plikw. Interpretowany jest
parametr, a najdusze dopasowanie wzorca do jego zinter-
pretowanej wartoci zastpowane jest acuchem. W pierwszej
postaci, zastpowane jest tylko pierwsze dopasowanie.
Druga posta powoduje zastpienie wszystkich dopasowa
wzorca acuchem. 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
acuch 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 powstaa lista. Jeli parametr jest zmienn tablicow
indeksowan przez @ lub *, operacja podstawiania jest
przeprowadzana po kolei na kadym elemencie tablicy, za
wynikiem interpretacji jest powstaa lista.
Podstawianie wynikw polece
Podstawianie wynikw polece (command substitution) pozwala na
zastpowanie nazwy polecenia wyjciem (wynikiem) z jego dziaania.
Posiada dwie postaci:
$(polecenie)
lub
`polecenie`
Bash wykonuje interpretacj wykonujc polecenie i zastpujc pod-
stawiane 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
podziau na sowa. Podstawienie wyniku polecenia $(cat plik) mona
zastpi rwnowanym, ale szybszym $(< plik).
Gdy uywane jest podstawianie w starym stylu, z uyciem odwrotnych
apostrofw, odwrotny ukonik zachowuje swe znaczenie dosowne, z
wyjtkiem przypadkw, gdy poprzedza on $, ` lub \. Pierwszy
odwrotny apostrof (`) nie poprzedzony odwrotnym ukonikiem koczy
podstawianie wyniku polecenia. Podczas posugiwania si postaci
$(polecenie), polecenie tworz wszystkie znaki pomidzy nawiasami;
aden nie jest traktowany specjalnie.
Podstawianie wynikw polece moe by zagniedane. W celu zagniedenia
postaci z odwrotnymi apostrofami zabezpiecz wewntrzne przed
interpretacj uywajc odwrotnych ukonikw.
Jeeli podstawianie pojawia si wewntrz cudzysoww, to na wynikach
nie jest przeprowadzany podzia na sowa ani rozwinicie nazw
plikw.
Interpretacja wyrae arytmetycznych
Interpretacja wyrae arytmetycznych pozwala na obliczanie wyrae
arytmetycznych i podstawianie wyniku. Format interpretacji aryt-
metycznej:
$((wyraenie))
wyraenie traktowane jest tak, jakby byo ujte w cudzysowy, ale
cudzysw wewntrz nawiasw nie jest traktowany specjalnie.
Wszystkie tokeny w wyraeniu podlegaj interpretacji parametrw,
interpretacji acuchw, podstawianiu wynikw polece i usuwaniu cud-
zysoww.
Interpretacja przeprowadzana jest zgodnie z zasadami podanymi
poniej w sekcji OBLICZENIA ARYTMETYCZNE. Jeeli wyraenie jest
nieprawidowe, bash wypisuje komunikat o niepowodzeniu i nie
wystpuje adne podstawienie.
Podstawianie wynikw procesw (Process substitution)
Podstawianie wynikw procesw obsugiwane jest na systemach obsugu-
jcych potoki nazwane (FIFO) lub metod /dev/fd nazywania
otwartych plikw. Przybiera ono posta <(lista) lub >(lista).
Proces lista uruchamiany jest z wejciem i wyjciem podczonym do
FIFO lub jakiego pliku w /dev/fd. W wyniku interpretacji nazwa
tego pliku przesyana jest jako argument biecego polecenia.
Jeeli posuono si postaci >(lista), zapis do pliku bdzie stanowi
wejcie dla listy. Jeeli posuono si postaci <(lista), plik
przekazany jako argument powinien zosta odczytany w celu uzyska-
nia wyjcia listy.
Gdy jest to moliwe, podstawianie wynikw procesu wykonywane jest
rwnoczenie z interpretacj parametrw i zmiennych, podstawianiem
wynikw polece i interpretacj wyrae arytmetycznych.
Podzia na sowa
Powoka przeszukuje wyniki interpretacji parametrw, podstawiania
polece i interpretacji wyrae arytmetycznych, ktre nie pojawiaj
si wewntrz cudzysoww, w celu przeprowadzenia podziau na sowa.
Powoka traktuje kady znak IFS jak separator i w miejscu ich
wystpowania dzieli na sowa wyniki innych interpretacji. Jeeli
IFS nie jest ustawione lub jego wartoci jest dokadnie
<spacja><tab><nowalinia>, warto domylna, to do podziau na sowa
suy dowolna sekwencja znakw IFS. Jeeli IFS posiada warto inn ni
domylna, to sekwencje biaych znakw spacji i tabulacji s
ignorowane na pocztku i kocu sowa, dopki biay znak wystpuje w
wartoci IFS (biay znak IFS). Inne znaki w IFS nie bdce biaymi
znakami IFS, cznie z dowolnymi przylegymi biaymi znakami IFS,
ograniczaj pole. Sekwencja biaych znakw IFS jest rwnie trak-
towana jako ogranicznik. Jeli IFS jest acuchem pustym, to nie
wystpuje podzia na sowa.
Jawnie puste argumenty ("" lub '') s pozostawiane. Niecytowane
argumenty puste niejawnie, wynikajce z interpretacji parametrw
nie posiadajcych wartoci, s usuwane. Jeli parametr bez wartoci
interpretowany jest wewntrz cudzysoww, to wynikiem jest argument
pusty i jest on zachowywany.
Zauwa, e jeli nie wystpuje interpretacja, to nie jest rwnie
wykonywany podzia.
Rozwijanie nazw plikw (Pathname Expansion)
Po podziale na sowa, jeeli nie ustawiona zostaa opcja -f,
przeglda kade sowo w poszukiwaniu znakw *, ? i [. Jeli pojawia
si jeden z nich, to sowo uwaane jest za wzorzec i zastpowane
jest posortowan alfabetycznie list nazw plikw pasujcych do
wzorca. Jeeli nie znaleziono pasujcych nazw a wyczona jest
opcja nullglob powoki, sowo pozostawiane jest bez zmian. Jeeli
nullglob jest wczone, a nie znaleziono dopasowa, to sowo jest
usuwane. Jeeli wczona jest opcja nocaseglob powoki, to dopa-
sowywanie wzorca wykonywane jest bez zwracania uwagi na wielko
liter. Gdy do rozwinicia nazw plikw uywa si wzorca, to znak
,,.'' na pocztku nazwy lub bezporednio po ukoniku musi zosta
dopasowany dosownie, chyba e ustawiono opcj dotglob powoki.
Podczas dopasowywania nazwy pliku znak ukonika musi zawsze zosta
dopasowany dosownie. W pozostaych przypadkach, kropka ,,.''
nie jest traktowana specjalnie. Zobacz poniej opis shopt w
sekcji WBUDOWANE POLECENIA POWOKI, gdzie znajdziesz omwienie
opcji powoki nocaseglob, nullglob i dotglob.
Do ograniczenia zestawu nazw plikw pasujcych do wzorca mona
wykorzysta zmienn powoki GLOBIGNORE. Jeeli GLOBIGNORE jest
ustawione, kada z pasujcych nazw plikw pasujca rwnie do jednego
ze wzorcw w GLOBIGNORE jest usuwana z listy dopasowa. Nazwy
plikw ,,.'' i ,,..'' s zawsze ignorowane, nawet gdy GLOBIGNORE
jest ustawione. Jednake, ustawienie GLOBIGNORE skutkuje wczeniem
opcji dotglob, tak e bd dopasowywane wszystkie inne nazwy plikw
rozpoczynajce si od kropki. W celu uzyskania starego zachowa-
nia, ignorujcego nazwy zaczynajce si ,,.'', jednym ze wzorcw w
GLOBIGNORE naley zrobi ,,.*'' . Opcja dotglob jest wyczana, gdy
kasowane jest GLOBIGNORE .
Dopasowanie wzorca
Kady znak pojawiajcy si we wzorcu, rnych od specjalnych znakw
wzorca opisanych poniej, dopasowuje sam siebie. Znak NUL nie moe
wystpi we wzorcu. Specjalne znaki wzorca musz by cytowane, jeeli
maj by dopasowane dosownie.
Specjalne znaki wzorca maj nastpujce znaczenie:
* Dopasowuje dowolny acuch, cznie z acuchem pustym.
? Dopasowuje dowolny pojedynczy znak.
[...] Dopasowuje jeden z ujtych w nawiasy kwadratowe znakw.
Para znakw rozdzielona mylnikiem opisuje wyraenie
zakresu; dopasowywany jest nim dowolny znak, ktry przy
sortowaniu leksykalnym, z zastosowaniem biecego ustaw-
ienia locale i zestawu znakw, wypada midzy tymi dwoma
znakami, wcznie z nimi. Jeeli pierwszym znakiem wystpuj-
cym po [ jest ! lub ^, to dopasowywany jest dowolny znak
nie zawarty w nawiasach. Kolejno sortowania znakw w
wyraeniach zakresu okrelona jest przez biece ustawienie
locale i warto zmiennej rodowiskowej LC_COLLATE, jeli
istnieje. Znak - mona dopasowa wczajc go jako pierwszy
lub ostatni ze znakw zestawu. Znak ] mona dopasowa
wczajc go jako pierwszy znak zestawu.
Wewntrz [ i ], mona podawa klasy znakw (character
classes), uywajc skadni [: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 znakw dopasowuje dowolny znak nalecy do tej klasy.
Wewntrz [ i ], mona poda klas rwnowanoci, uywajc skadni
[=z=], ktra dopasowuje wszystkie znaki o tej samej wadze
sortowania (zdefiniowan w biecym ustawieniu locale) co
znak z.
Wewntrz [ i ], skadnia [.symbol.] dopasowuje symbol sor-
towania (collating symbol) symbol.
Jeeli przy pomocy wbudowanego shopt wczono opcj extglob, to
rozpoznawane jest kilka rozszerzonych operatorw dopasowania
wzorcw. W poniszym opisie, lista-wzorcw jest list zoon z jed-
nego lub wicej wzorcw rozdzielonych znakiem |. Wzorce zoone
mona konstruowa przy pomocy jednego lub wicej poniszych pod-
wzorcw:
?(lista-wzorcw)
Dopasowuje zero lub jedno wystpienie zadanych
wzorcw
*(lista-wzorcw)
Dopasowuje zero lub wicej wystpie zadanych wzorcw
+(lista-wzorcw)
Dopasowuje jedno lub wicej wystpie zadanych wzorcw
@(lista-wzorcw)
Dopasowuje dokadnie jeden z zadanych wzorcw
!(lista-wzorcw)
Dopasowuje cokolwiek prcz jednego z zadanych
wzorcw
Usunicie cytowa
Po poprzednich interpretacjach, wszystkie niecytowane wystpienia
znakw \, ' i ", ktre nie wyniky z jednej z powyszych interpre-
tacji, s usuwane.
Przed wykonaniem polecenia, jego wejcie i wyjcie mog zosta
przekierowane przy pomocy specjalnej notacji interpretowanej
przez powok. Przekierowa mona te uywa do otwierania i zamykania
plikw dla rodowiska wykonywania biecej powoki. 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).
Sowo nastpujce do operatorze przekierowania w poniszych opisach
podlega, chyba e podano inaczej, interpretacji nawiasw, inter-
pretacji tyldy, interpretacji parametrw, podstawianiu wynikw
polece, interpretacji wyrae arytmetycznych, usuwaniu cytowa,
rozwijaniu nazw plikw i podziaowi na sowa. Jeli zinterpretowane
zostanie jako wicej ni jedno sowo, to bash zgosi bd.
Zauwa, e kolejno przekierowa jest znaczca. Na przykad, polecenie
ls > dirlist 2>&1
kieruje zarwno 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
bdw zostao zduplikowane jako standardowe wyjcie przed
przekierowaniem wyjcia do dirlist.
Bash obsuguje kilka nazw plikw w sposb specjalny gdy s one uyte
w przekierowaniach. Opisano to w poniszej tablicy:
/dev/fd/fd
Jeeli fd jest poprawn liczb cakowit, to dup-
likowany 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 cakowit okrelajc
numer portu lub nazw usugi, to bash usiuje otworzy
poczenie TCP do odpowiedniego gniazda.
/dev/udp/host/port
Jeli host jest poprawn nazw hosta lub adresem
internetowym, a port jest liczb cakowit okrelajc
numer portu lub nazw usugi, to bash usiuje otworzy
poczenie UDP do odpowiedniego gniazda.
Nieudane otwarcie lub utworzenie pliku powoduje niepowodzenie
przekierowania.
Przekierowanie wejcia
Przekierowanie wejcia powoduje otwarcie do odczytu pliku, ktrego
nazwa wynika z interpretacji sowa. Odczyt bdzie wykonywany z
deskryptora pliku n lub standardowego wejcia (zerowy deskryptor
pliku) jeli nie podano n.
Oglny format przekierowania wejcia:
[n]<sowo
Przekierowanie wyjcia
Przekierowanie wyjcia powoduje otwarcie do zapisu pliku, ktrego
nazwa wynika z interpretacji sowa. 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.
Oglny format przekierowania wyjcia:
[n]>sowo
Jeeli operatorem przekierowania jest >, a zostaa wczona opcja
noclobber wbudowanego polecenie set, to przekierowanie nie
powiedzie si jeeli plik o nazwie wynikajcej z interpretacji sowa
istnieje i jest zwykym plikiem. Jeeli operatorem przekierowania
jest >|, albo operatorem jest > przy niewczonej opcji noclobber,
to wykonywana jest prba przekierowania, nawet jeli plik sowo
istnieje.
Doczanie przekierowanego wyjcia
Przekierowanie wyjcia w ten sposb powoduje, e plik o nazwie
wynikajcej z interpretacji sowa zostanie otwarty do doczania
(append). Doczanie bdzie wykonywane z deskryptora pliku n lub
standardowego wyjcia (deskryptor pliku 1) jeli nie podano n.
Jeeli plik nie istnieje jest tworzony.
Oglny format doczania wyjcia:
[n]>>sowo
Przekierowanie standardowego wyjcia i wyjcia bdw
Bash pozwala, przy pomocy tej konstrukcji, przekierowa standard-
owe wyjcie (deskryptor pliku 1) i standardowe wyjcie bdw
(deskryptor plikw 2) do pliku, ktrego nazw jest zinterpretowane
sowo.
Istniej dwie postaci takiego przekierowania:
&>sowo
i
>&sowo
Spord nich, zalecan jest pierwsza forma. Jest ona semantycznie
rwnowana
>sowo 2>&1
Dokumenty wczone (Here Documents)
Ten typ przekierowania instruuje powok, by czytaa wejcie z
biecego rda a do napotkania wiersza zawierajcego tylko sowo (bez
adnych koczcych odstpw). Wszystkie wiersze przeczytane do tego
momentu s nastpnie uywane jako standardowe wejcie polecenia.
Format dokumentw wczonych jest nastpujcy:
<<[-]sowo
dokument wczony
ogranicznik
Na sowie nie jest wykonywana interpretacja parametrw, podstawia-
nia wynikw polece, rozwijanie nazw plikw ani interpretacja wyrae
arytmetycznych. Jeeli jakie znaki w sowie s cytowane, to
ogranicznik jest wynikiem usunicia cytowa ze sowa, a wiersze w
dokumencie wczonym nie s interpretowane. Jeeli sowo nie jest
cytowane, wszystkie wiersze dokumentu wczonego podlegaj inter-
pretacji parametrw, podstawianiu polece i interpretacji wyrae
arytmetycznych. W tym ostatnim przypadku, sekwencja \<nowalinia>
jest ignorowana, a do cytowania znakw \, $ i ` musi by uyte \.
Jeeli operatorem przekierowania jest <<-, to wszystkie pocztkowe
znaki tabulacji s obcinane z wierszy wejciowych i wiersza zaw-
ierajcego ogranicznik. Pozwala to na ustawienie naturalnych wci
dla dokumentw wczonych w skryptach powoki.
Powielanie deskryptorw plikw
Operator przekierowania
[n]<&sowo
suy do powielania deskryptorw plikw wejciowych. Jeeli sowo zin-
terpretowane zostanie jako jedna lub wicej cyfr, to deskryptor
pliku oznaczony przez n czyniony jest kopi tego deskryptora.
Jeeli cyfry w sowie nie okrelaj otwartego dla wejcia deskryp-
tora, pojawia si bd przekierowania. Jeeli sowo zinterpretowane
jest jako -, deskryptor pliku n jest zamykany. Jeeli n nie
zostao okrelone, to stosowane jest standardowe wejcie (deskryp-
tor pliku 0).
Operator
[n]>&sowo
podobnie, suy do powielania deskryptorw standardowego wyjcia.
Jeeli nie okrelono n, stosowane jest standardowe wyjcie
(deskryptor pliku 1). Jeeli cyfry w sowie nie okrelaj deskryp-
tora pliku otwartego do wyjcia, pojawia si bd przekierowania. W
przypadku specjalnym, jeeli pominito n, a sowo nie jest inter-
pretowane jako jedna lub wicej cyfr, to przekierowywane s stan-
dardowe wyjcie i standardowe wyjcie bdw, jak opisano poprzednio.
Otwieranie deskryptorw plikw do odczytu i zapisu
Operator przekierowania
[n]<>sowo
powoduje, e plik o nazwie wynikej z interpretacji sowa 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 (czyli synonimy) pozwalaj na zastpienie sowa acuchem, gdy
zostanie ono uyte jako pierwsze sowo w poleceniu prostym.
Powoka utrzymuje list aliasw, ktre mog by ustawiane i uniewani-
ane przy pomocy wbudowanych polece alias i unalias (zobacz
poniej WBUDOWANE POLECENIA POWOKI). Dla pierwszego sowa kadego
polecenia, jeli nie jest cytowane, nastpuje sprawdzenie, czy
posiada ono alias. Jeeli tak, to sowo to jest zastpowane tekstem
aliasu. Nazwa aliasu i zastpujcy ja tekst mog zawiera dowolne
poprawne wejcie powoki, cznie z metaznakami podanymi powyej, z
wyjtkiem tego, e nazwy aliasw nie mog zawiera znaku rwnoci =.
Pierwsze sowo tekstu zastpujcego jest z kolei sprawdzane na
aliasy, ale sowo identyczne z interpretowanym wanie aliasem nie
jest interpretowane powtrnie. Oznacza to, e mona mie alias ls do
ls -F, na przykad, a bash nie bdzie usiowa rekurencyjnie inter-
pretowa zastpujcego tekstu. jeeli ostatnim znakiem wartoci
aliasu jest odstp, to nastpne sowo polecenia wystpujce po
aliasie ma rwnie sprawdzan interpretacj aliasw.
Aliasy s tworzone i pokazywane poleceniem alias, a usuwane
poleceniem unalias.
Nie ma adnego mechanizmu posugiwania si argumentami w tekcie
zastpujcym. Jeli potrzebne s argumenty, powinna zosta uyta
funkcja powoki (zobacz poniej FUNKCJE).
Aliasy nie s interpretowane, gdy powoka nie jest interaktywna,
chyba e ustawiono opcj powoki expand_aliases przy pomocy shopt
(zobacz opis shopt w sekcji WBUDOWANE POLECENIA POWOKI poniej).
Reguy dotyczce definiowania i uywania aliasw s nieco zagmatwane.
Bash zawsze czyta co najmniej jeden peny wiersz z wejcia przed
wykonaniem jakichkolwiek polece tego wiersza. Aliasy interpre-
towane s w czasie odczytu polecenia, nie podczas jego wykonywa-
nia. Z tego powodu, definicja aliasu wystpujca w tym samym wier-
szu, co inne polecenie nie zadziaa a do przeczytania nastpnego
wiersza wejcia. Na polecenia wystpujce po definicji aliasu, w
tym samym wierszu, nowy alias nie ma wpywu. Zachowanie to ujaw-
nia si take podczas wykonywania funkcji. Aliasy interpretowane
s w czasie odczytu definicji funkcji, nie za podczas jej wykony-
wania, gdy sama definicja funkcji stanowi polecenie zoone. W
skutek tego aliasy zdefiniowane w funkcji nie s dostpne, a do
chwili po wykonaniu funkcji. Dla bezpieczestwa, zawsze
umieszczaj definicje aliasw w odrbnym wierszu i nie uywaj alias
w poleceniach zoonych.
Prawie w kadym zastosowaniu aliasy s wyparte przez funkcje
powoki.
Punkcja powoki, zdefiniowana jak opisano powyej, w sekcji GRA-
MATYKA POWOKI, przechowuje szereg polece do pniejszego wykona-
nia. Gdy nazwa funkcji powoki uywana jest jako nazwa polecenia
prostego, wykonywana jest lista polece zwizanych z t nazw
funkcji. Funkcje wykonywane s w kontekcie biecej powoki; do ich
interpretacji nie jest tworzony aden nowy proces (zauwa rnic w
stosunku do wykonania skryptu powoki). Podczas wykonywania
funkcji, przekazane jej argumenty staj si parametrami pozy-
cyjnymi. Aktualizowany jest specjalny parametr #, tak by
odzwierciedla zmian. Parametr pozycyjny 0 nie jest zmieniany.
Zmienna FUNCNAME podczas wykonywania funkcji ustawiana jest na
jej nazw. Wszystkie inne aspekty rodowiska wykonywania powoki s
identyczne midzy funkcj i jej wywoujcym, z wyjtkiem tego, e nie
jest dziedziczona puapka (trap) DEBUG (zobacz opis wbudowanego
trap poniej, w sekcji WBUDOWANE POLECENIA POWOKI ).
Zmienne lokalne dla funkcji mog by deklarowane przy pomocy wbu-
dowanego polecenia local. Zwykle zmienne i ich wartoci s wsplne
dla funkcji i jej woajcego.
Jeeli w funkcji wywoywane jest wbudowane polecenie return,
funkcja koczy dziaanie i wykonywanie wznawiane jest od nastpnego
polecenia po wywoaniu funkcji. Gdy funkcja koczy dziaanie,
parametrom pozycyjnym i parametrowi specjalnemu # przywracane s
wartoci, jakie posiaday 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 podpowokach. Wykonuje
si to przy pomocy opcji -f wbudowanego polecenia export.
Funkcje mog by rekurencyjne. Nie ma narzuconego ograniczenia na
liczb rekurencyjnych wywoa.
Powoka pozwala, pod pewnymi warunkami, na obliczanie wartoci
wyrae arytmetycznych (zobacz wbudowane polecenie let i Interpre-
tacja wyrae arytmetycznych). Obliczenia wykonywane s na dugich
liczbach cakowitych (long integer), bez kontroli przepenienia
(overflow), mimo i dzielenie przez 0 jest przechwytywane i
oznaczane jako bd. Operatory i ich priorytety oraz sposb ich
doczania s takie same jak w jzyku C. Ponisza lista operatorw
pogrupowana jest w poziomy operatorw 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
<= >= < >
porwnanie
== != rwnoci i nierwno
& bitowa koniunkcja (AND)
^ bitowa alternatywa wyczna (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 powoki; interpretacja
parametrw przeprowadzana jest przed obliczeniem wyraenia. Wewn-
trz wyraenia, do zmiennych powoki mona si te odwoywa przez nazw,
bez uycia skadni interpretacji parametrw. Gdy wystpi odwoanie
si do zmiennej, jej warto obliczana jest jako wyraenie arytmety-
czne. Zmienna powoki nie musi mie wczonego atrybutu liczby
cakowitej by moga by uyta w wyraeniu.
Stae z pocztkowym 0 interpretowane s jako liczby semkowe.
Pocztkowe 0x lub 0X oznacza liczb szesnastkow. W pozostaych
przypadkach liczby maj posta [podstawa#]n, gdzie podstawajest
liczb dziesitn pomidzy 2 a 64 reprezentujc podstaw ukadu pozy-
cyjnego, za n liczb w ukadzie o tej podstawie. Jeli pominito
podstawa#, to uywana jest podstawa 10. Cyfry wiksze ni 9
reprezentowane s przez mae litery, wielkie litery, @ i _, w tej
kolejnoci. Jeeli podstawa jest mniejsza bd rwna 36, to do
zapisu liczb pomidzy 10 a 35 mona uywa zamiennie maych i wiel-
kich liter.
Operatory interpretowane s w kolejnoci priorytetu. Podwyraenia w
nawiasach obliczane s jako pierwsze i mog uniewani podane wyej
reguy priorytetw.
Wyraenia warunkowe uywane s przez polecenie zoone [[ oraz
polecenia wbudowane test i [ do testowania atrybutw pliku i
wykonywania porwna acuchowych i arytmetycznych. Wyraenia zoone
s z poniszych jedno- i dwuargumentowych skadowych. Jeli ktry z
argumentw plikowych jednej z skadowych jest w postaci /dev/fd/n,
to sprawdzany jest deskryptor pliku n. Jeeli argument plik
ktrej skadowej 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 spec-
jalnym.
-c plik
Prawda jeli plik istnieje i jest znakowym plikiem spec-
jalnym.
-d plik
Prawda jeli plik istnieje jest katalogiem.
-e plik
Prawda jeli plik istnieje.
-f plik
Prawda jeli plik istnieje i jest plikiem zwykym.
-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 wacicielem jest efekty-
wny id uytkownika.
-G plik
Prawda jeli plik istnieje i jego wacicielem jest efekty-
wny 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 ostat-
niego jego odczytu.
plik1 -nt plik2
Prawda jeli plik1 jest nowszy (wedug 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-wza.
-o nazwa_opcji
Prawda jeli opcja powoki nazwa_opcji jest wczona. Zobacz
zestawienie opcji w opisie opcji -o wbudowanego set,
poniej.
-z acuch
Prawda jeli dugo acucha wynosi zero.
-n acuch
acuch Prawda jeli acuch ma dugo niezerow.
acuch1 == acuch2
Prawda jeli acuchy s rwne. Zamiast == mona uy =.
acuch1 != acuch2
Prawda jeli acuchy nie s rwne.
acuch1 < acuch2
Prawda jeli acuch1 przy sortowaniu wystpowaby przed
acuchem2 wedug biecego ustawienia locale.
acuch1 > acuch2
Prawda jeli acuch1 przy sortowaniu wystpowaby po acuchu2
wedug 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 rwne (eq), nie rwne (ne), mniejsze
ni (lt), mniejsze bd rwne (le), wiksze ni (gt) lub wiksze
bd rwne (ge) arg2. Arg1 i arg2 mog by dodatnimi lub
ujemnymi liczbami cakowitymi.
Gdy wykonywane jest polecenie proste, powoka wykonuje nastpujce
interpretacje, przypisania i przekierowania, od lewej do prawej.
1. Sowa oznaczone przez analizator skadni jako przypisania
zmiennych (poprzedzajce nazw polecenia) i przekierowania
zachowywane s do pniejszego przetworzenia.
2. Sowa, nie bdce przypisaniami zmiennych ani przekierowani-
ami s interpretowane. Jeeli po interpretacji pozostan
jakie sowa, to pierwsze z nich przyjmowane jest za nazw
polecenia a pozostae za argumenty.
3. Wykonywane s przekierowania, jak opisano powyej w sekcji
PRZEKIEROWANIE.
4. W kadym przypisaniu zmiennej tekst po znaku rwnoci =
podlega interpretacji tyldy, interpretacji parametrw,
podstawianiu wynikw polece, interpretacji wyrae arytmety-
cznych i usuwaniu cudzysoww, zanim zostanie przypisany do
zmiennej.
Jeeli nie otrzymano adnej nazwy polecenia, to przypisania zmien-
ncyh dotycz rodowiska aktualnej powoki. W przeciwnim razie, zmi-
enne s dodawane do rodowiska wykonywanego polecenia i nie maj
wpywu na rodowisko biecej powoki. jeeli ktre z przypisa usiuje
nada warto zmiennej read-only, pojawia si bd, a polecenie koczy
prac z niezerowym kodem.
Jeeli nie otrzymano adnej nazwy polecenia, wykonywane s
przekierowania, ale nie maj one wpywu na biece rodowisko powoki.
Bd 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 krokw byo podstawienie
wynikw polecenia, to zwracany kod zakoczenia jest kodem ostat-
niego wykonanego podstawienia polecenia. Jeli nie wystpio pod-
stawianie polece, to polecenie koczy prac z kodem zerowym.
Po podziale polecenia na sowa, jeli jego wynikiem jest polecenie
proste z opcjonaln list argumentw, podejmowane s ponisze akcje.
Jeli polecenie nie zawiera ukonikw, powoka usiuje je zlokali-
zowa. jeeli istnieje funkcja powoki o tej nazwie, wywoywana
jest ta funkcja, jak opisano powyej w sekcji FUNKCJE. Jeeli
nazwa nie pasuje do funkcji, powoka szuka jej na licie polece
wbudowanych. Jeeli nie znaleziono pasujce, to jest ono wywoy-
wane.
Jeeli nazwa nie jest ani funkcj powoki ani poleceniem wbudowanym
i nie zawiera ukonikw, to bash przeszukuje kady element z PATH
usiujc znale katalog zawierajcy plik wykonywalny o takiej
nazwie. Bash posuguje si tablic mieszajc (hash table) do
zapamitywania penych nazw plikw wykonywalnych (zobacz hash w
WBUDOWANE POLECENIA POWOKI poniej). Pene przeszukiwanie kata-
logw z PATH wykonywane jest tylko wtedy, gdy polecenia nie
znaleziono w tablicy mieszajcej. Jeeli poszukiwanie nie powiodo
si, powoka wypisuje komunikat o bdzie i zwraca kod zakoczenia
rwny 127.
Jeeli poszukiwanie byo pomylne lub jeli nazwa polecenia zawiera
jeden lub wicej ukonikw, powoka wykonuje zadany program w odrb-
nym rodowisku wykonania. Argumentowi 0 przypisywana jest podana
nazwa, a pozostaym argumentom polecenia podane argumenty, jeli
byy takowe.
Jeeli wykonanie to nie powiedzie si, gdy plik nie ma formatu
wykonywalnego, a nie jest katalogiem, to zakada si, e jest on
skryptem powoki, plikiem zawierajcym polecenia powoki. Powoy-
wana jest podpowoka do jego wykonania. Powoka ta reinicjuje si,
zatem efekt jest taki, jakby do obsugi skryptu zostaa wywoana
nowa powoka, z wyjtkiem tego, e pooenia polece zapamitane przez
rodzica (zobacz hash poniej w WBUDOWANE POLECENIA POWOKI s
zachowywane przez potomka.
Jeeli program jest plikiem o zawartoci rozpoczynajcej si od #!,
to reszta pierwszego wiersza okrela interpreter dla tego pro-
gramu. Powoka uruchamia podany interpreter na systemach opera-
cyjnych, ktre same nie obsuguj tego formatu wykonywalnego. Argu-
menty dla interpretera skadaj si z pojedynczego opcjonalnego
argumentu wystpujcego po nazwie interpretera w pierwszym wierszu
programu, nastpujcej po nim nazwy programu i nastpujcych po niej
argumentw polecenia, jeli byy takowe.
Powoka posiada rodowisko wykonywania (execution environment),
skadajce si z:
+o otwarte pliki odziedziczone przez powok przy wywoaniu,
zmodyfikowane przez przekierowania przekazane do wbu-
dowanego polecenia exec
+o biecy katalog roboczy ustawiony przez cd, pushd lub popd,
albo odziedziczony przez powok przy wywoaniu
+o mask trybut tworzonych plikw ustawion przez umask albo
odziedziczon po rodzicu powoki
+o biece puapki ustawione przez trap
+o parametry powoki ustawione przez przypisania zmiennych
przy pomocy set albo odziedziczone ze rodowiska rodzica
powoki
+o funkcje powoki zdefiniowane podczas wykonywania lub
odziedziczone ze rodowiska rodzica powoki
+o opcje wczone przy wywoaniu (albo domylnie albo przy
pomocy argumentw wiersza polece) albo przez set
+o opcje wczone przez shopt
+o aliasy powoki zdefiniowane przy pomocy alias
+o rne id procesw, cznie z identyfikatorami zada ta, warto
$$ i warto $PPID
Gdy ma zosta wykonane polecenie proste inne ni funkcja powoki
lub polecenie wbudowane, wywoywane jest w odrbnym rodowisku
wykonania, skdajcych si z poniszych elementw. Jeli nie podano
inaczej, wartoci dziedziczone s z powoki.
+o otwarte pliki powoki, plus modyfikacje i dodatki okrelone
przez przekierowania polecenia
+o biecy katalog roboczy
+o maska trybu tworzonych plikw
+o zmienne powoki oznaczone do wyeksportowania, razem ze
zmiennymi wyeksportowanymi do polecenia, przekazane w
rodowisku.
+o puapki przechwycone przez powok resetowane s do wartoci
odziedziczonych przez ni od rodzica, a puapki ignorowane
przez powok s ignorowane.
Polecenie wywoane w odrbnym rodowisku nie moe wpywa na rodowisko
wykonywania powoki.
Podstawienia wynikw polece i polecenia asynchroniczne wywoywane
s w rodowisku podpowoki, ktre jest kopi rodowiska powoki, z
wyjtkiem tego, e puapki przechwycone przez powok s resetowane do
wartoci, jakie powoka odziedziczya po rodzicu podczas wywoania.
Polecenia wbudowane wywoywane jako cz potoku rwnie wykonywane s
w rodowisku podpowoki. Zmiany wykonane w rodowisku podpowoki nie
mog wpywa na rodowisko wykonywania powoki.
Jeeli po poleceniu wystpuje &, a nie uaktywniono sterowania
zadaniami, to domylnym standardowym wejciem dla tego polecenia
jest pusty plik /dev/null. W przeciwnym razie wywoywane polece-
nie dziedziczy deskryptory plikw po woajcej powoce, zmody-
fikowane przekierowaniami.
Poczas wywoywania program otrzymuje tablic acuchw zwan
rodowiskiem(environment). jest to lista par nazwa-warto, o
postaci nazwa=warto.
Powoka pozwala na manipulowanie rodowiskiem na kilka sposobw.
Przy wywoaniu, przeszukuje ona wasne rodowisko i tworzy parametr
dla kadej znalezionej nazwy, automatycznie zaznaczajc go do
wyeksportowania do procesw potomnych. Wykonywane polecenia
dziedzicz rodowisko. Polecenia export i declare -x pozwalaj na
dodawanie i usuwanie ze rodowiska parametrw i funkcji. Jeeli w
rodowisku zmieniana jest warto parametru, to nowa warto staje si
czci rodowiska, zastpujc star. rodowisko dziedziczone przez kade
wykonywane polecenie skada si z pocztkowego rodowiska powoki,
ktrego wartoci mog by w powoce 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
parametrw, jak opisano powyej w sekcji PARAMETRY. Te instrukcje
przypisania maj wpyw wycznie na rodowisko postrzegane przez to
polecenie.
Jeeli ustawiona jest opcja -k (zobacz poniej opis wbudowanego
polecenia set), to wszystkie przypisania parametrw umieszczane s
w rodowisku polecenia, a nie tylko te, ktre poprzedzaj nazw
polecenia.
Gdy bash wywouje polecenie zewntrzne, zmienna _ ustawiana jest
na pen nazw pliku polecenia i przekazywana temu poleceniu w jego
rodowisku.
Dla celw powoki, polecenie, ktre zakoczyo prac z zerowym kodem
zakoczenia, powiodo si. Zerowy kod oznacza powodzenie. Niezerowy
kod oznacza niepowodzenie. Gdy polecenie koczy prac z bdem kry-
tycznym N, bash posuguje si wartoci 128+N jako kodem zakoczenia.
Jeeli nie znaleziono polecenia, proces potomny powoany do jego
wykonania zwraca kod 127. Jeeli polecenie zostao znalezione, ale
nie jest wykonywalne, kod zakoczenia wynosi 126.
Jeeli polecenie nie powiodo si z powodu bdu podczas interpre-
tacji lub przekierowania, kod zakoczenia jest wikszy od zera.
Wbudowane polecenia powoki zwracaj kod 0 (true prawda) jeli si
powiody, i niezerowy (false fasz) jeli podczas ich wykonywania
pojawi si bd. Wszystkie polecenia wbudowane zwracaj kod 2 dla
wskazania niepoprawnego uycia.
Sam Bash zwraca kod zakoczenia ostatniego wykonanego polecenia,
chyba e pojawi si bd skadni, wwczas koczy prac z wartoci nieze-
row. Zobacz te poniej polecenie wbudowane exit.
Gdy bash jest interaktywny, przy braku jakichkolwiek puapek
(przechwytywania sygnaw), ignoruje on SIGTERM (tak, e kill 0 nie
zabija powoki interaktywnej), a SIGINT jest przechwytywany i
obsugiwany (tak, e wbudowane polecenie wait daje si przerwa).
We wszystkich przypadkach, bash ignoruje SIGQUIT. Jeeli dziaa
kontrola zada, bash ignoruje SIGTTIN, SIGTTOU i SIGTSTP.
Zadania synchroniczne uruchomione przez bash maj procedury
obsugi sygnaw (signal handlers) ustawione na wartoci odziedzic-
zone przez powok po rodzicu. Jeeli nie pracuje kontrola zada, to
polecenia asynchroniczne ignoruj rwnie SIGINT i SIGQUIT.
Polecenia uruchamiane wskutek podstawiania polece ignoruj gen-
erowane z klawiatury sygnay kontroli zada SIGTTIN, SIGTTOU i
SIGTSTP.
Powoka domylnie koczy prac po otrzymaniu SIGHUP. Przed zakocze-
niem, powoka interaktywna rozsya otrzymany SIGHUP do wszystkich
zada, pracujcych lub zatrzymanych. Do zatrzymanych zada wysyany
jest SIGCONT by upewni si, e otrzymuj SIGHUP. Chcc unikn wysa-
nia sygnau przez powok do konkretnego zadania, naley usun je z
tablicy zada przy pomocy wbudowanego polecenia disown (zobacz
poniej WBUDOWANE POLECENIA POWOKI) lub oznakowa, by nie otrzymy-
wao SIGHUP, posugujc si disown -h.
Jeeli przy pomocy shopt zostaa ustawiona opcja huponexit powoki,
bash wysya SIGHUP do wszystkich zada, gdy koczy prac interakty-
wna powoka zgoszeniowa.
Gdy bash podczas oczekiwania na ukoczenie polecenia otrzymuje
sygna, dla ktrego ustawiono puapk, puapka ta nie zostanie wyko-
nana a do zakoczenia pracy polecenia. Gdy bash oczekuje na
polecenie asynchroniczne za porednictwem wbudowanego wait, odbir
sygnau, dla ktrego ustawiono przechwytywanie spowoduje, e wbu-
dowane wait natychmiast skoczy prac z kodem wikszym od 128, po
czym natychmiast zostanie wywoana puapka.
Kontrola zada odnosi si do moliwoci selektywnego zatrzymywania
(zawieszania - suspend) wykonywania procesw i pniejszej kontynu-
acji (wznawiania - resume) ich wykonywania. Uytkownik zwykle
wykorzystuje to udogodnienie za porednictwem interaktywnego
interfejsu obsugiwanego wsplnie przez systemowy sterownik termi-
nala i bash.
Powoka kojarzy z kadym potokiem zadanie. Przechowuje tablic
aktualnie wykonywanych zada, ktr mona przeglda za pomoc polece-
nia 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 posuguje si
abstrakcj (abstraction) zadania jako podstaw kontroli zada.
Dla uatwienia implementacji interfejsu uytkownika do kontroli
zada, system operacyjny utrzymuje pojcie ID grupy procesw
biecego terminala (current terminal process group ID). Elementy
tej grupy procesw (procesy, ktrych ID grupy procesw jest rwny ID
grupy procesw biecego terminala) otrzymuj generowane z klaw-
iatury sygnay, takie jak SIGINT. Mwimy, e procesy te pracuj
pierwszoplanowo. Procesy ta to takie, ktrych ID grupy procesw
rni si od terminala; procesy takie s odporne na sygnay pochodzce
z klawiatury. Tylko procesom pierwszoplanowym wolno czyta z lub
pisa na terminalu. Do procesw ta usiujcych czyta (pisa) z ter-
minala wysyany jest przez sterownik terminala sygna SIGTTIN
(SIGTTOU), ktry, jeli nie zostanie przechwycony, wstrzymuje pro-
ces.
Jeeli system operacyjny, na ktrym dziaa bash obsuguje kontrol
zada, bash zawiera funkcje do jej wykorzystywania. Nacinicie
klawisza wstrzymania (zwykle ^Z, Control-Z) podczas pracy pro-
cesu powoduje, e proces ten zostanie zatrzymany a sterowanie
zostanie zwrcone do bash. Nacinicie klawisza opnione wstrzy-
manie (zwykle ^Y, Control-Y) powoduje, e proces zostanie
zatrzymywany gdy bdzie usiowa czyta wejcie z terminala, a
sterowanie powrci do bash. Uytkownik moe nastpnie zmienia stan
takiego zadania, posugujc si poleceniem bg do kontynuacji zada-
nia w tle, fg do kontynuacji na pierwszym planie lub poleceniem
kill do zabicia zadania. ^Z dziaa natychmiast i ma efekt
uboczny: powoduje odrzucenie oczekujcego wyjcia i wprowadzonych,
a nieprzetworzonych nacini klawiszy (typeahead).
Istnieje kilka sposobw wskazywania zadania w powoce. 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 podacucha, jaki wystpuje w jego wierszu
polece. Na przykad, %ce odnosi si do zatrzymanego zadania ce.
Jeli przedrostek pasuje do wicej ni jednego zadania, bash zgasza
bd. Z drugiej strony, uycie %?ce, wskazuje na zadanie zawierajce
podacuch ce w swym wierszu polece. Jeeli acuch pasuje do wicej
ni jednego zadania, bash zgasza bd. Symbole %% i %+ okrelaj
rozumiane przez powok biece zadanie, bdce ostatnim zadaniem
zatrzymanym, gdy byo na pierwszym planie lub uruchomionym w tle.
Do poprzedniego zadania mona odwoywa si przy pomocy %-. W wyj-
ciu odnoszcym si do zada (np. wyjcie polecenia jobs), biece
zadanie jest zawsze zaznaczone znakiem +, a zadanie poprzednie
-.
Do przywrcenia zadania na pierwszy plan mona posuy si po prostu
jego nazw: %1 jest synonimem dla ,,fg %1'', przywracajcego
zadanie 1 z ta na pierwszy plan. Podobnie, ,,%1 &'' wznawia
zadanie 1 w tle, rwnowanie do ,,bg %1''''.
Powoka natychmiast dowiaduje si czy zadanie zmienio stan. Nor-
malnie, bash czeka ze zgoszeniem zmian do momentu, gdy ma wywi-
etli zacht, by nie przerywa innego wyjcia. Jeeli wczono opcj -b
wbudowanego polecenia set, bash zgasza takie zmiany natychmiast.
Dla kadego koczcego prac procesu potomnego wykonywana jest ewen-
tualna puapka przechwytujca SIGCHLD.
Jeeli wykonano prb zakoczenia pracy bash przy istniejcych
zatrzymanych zadaniach, powoka wypisuje komunikat ostrzegawczy.
Mona wwczas posuy si poleceniem jobs do sprawdzenia ich stanu.
Jeeli wykonywana jest druga prba zakoczenia pracy bez wystpienia
wtrconego midzy nie polecenia, powoka nie wypisuje kolejnego
ostrzeenia a zatrzymane zadania s przerywane.
Przy wykonywaniu interaktywnym bash wywietla gwny symbol zachty
(primary prompt) PS1 kiedy jest gotowa na odczyt polecenia, za
wtrn (secondary) zacht PS2 kiedy potrzebuje wicej danych z wej-
cia do uzupenienia polecenia. Bash pozwala na dostosowywanie
tych acuchw zachty poprzez wstawianie pewnej iloci znakw spec-
jalnych rozpoczynajcych si odwrotnym ukonikiem, ktre 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 obsugiwanych przez powok
\l gwna cz nazwy urzdzenia terminala powoki
\n znak nowej linii
\r powrt karetki
\s nazwa powoki, gwna 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 at (np., 2.00.0)
\w biecy katalog roboczy
\W gwna 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 znakw niedrukowalnych, ktra moe
suy do osadzenia w zachcie sekwencji sterujcych
terminalem
\] koniec sekwencji znakw niedrukowalnych
Numer polecenia i numer w historii s zwykle rne: numer polecenia
w historii jest jego pozycj na licie historii, ktra moe obejmowa
polecenia odtworzone z pliku historii (zobacz poniej HISTORIA),
podczas gdy numer polecenia jest pozycj w sekwencji polece wyko-
nanych w obecnej sesji powoki. Po zdekodowaniu, acuch jest
interpretowany poprzez interpretacj parametrw, podstawianie
wynikw polece, interpretacj wyrae arytmetycznych, interpretacj
acuchw i usuwanie cytowa, zgodnie z wartoci opcji promptvars
powoki (zobacz opis polecenia shopt w sekcji WBUDOWANE POLECENIA
POWOKI poniej).
Jest to biblioteka obsugujca odczytywanie wejcia podczas posugi-
wania si powok interaktywn, chyba e przy wywoaniu powoki podano
opcj --noediting. Domylnie, polecenia edycji wiersza s podobne
do wystpujcych w emacsie. Dostpny jest take interfejs edycji
wiersza w stylu vi. By wyczy edycj wiersza po uruchomieniu
powoki, uyj opcji +o emacs lub +o vi wbudowanego polecenia set
(zobacz WBUDOWANE POLECENIA POWOKI 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, ktre nor-
malnie dziaaj jako licznik powtrze. Czasami jednak, znaczcy
jest znak argumentu. Przekazanie ujemnego argumentu poleceniu,
ktre dziaa w przd (np. kill-line) powoduje, e bdzie ono dziaa
odwrotnym kierunku (wstecz). Polecenia, ktrych zachowanie z
argumentami odbiega od podanego odnotowano poniej.
Gdy polecenie opisano jako usuwajce (killing) tekst, tekst ten
jest zachowywany to ewentualnego pniejszego odzyskania (przywoa-
nia yanking). Kolejne usunicia powoduj, e tekst jest zbierany w
jedn cao, ktr mona odzyska naraz. Polecenia nie usuwajce tekstu
oddzielaj kawaki 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 bib-
lioteki 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 kon-
strukcje warunkowe. Inne wiersze wyznaczaj przypisania klawiszy
i ustawienia zmiennych.
Domylne przypisania klawiszy mona zmieni przy pomocy pliku inpu-
trc. Inne programy posugujce si t bibliotek mog dodawa wasne
polecenia i przypisania.
Na przykad, umieszczenie
M-Control-u: universal-argument
lub
C-Meta-u: universal-argument
w inputrc spowodowaoby, e M-C-u wywoywaoby polecenie readline
universal-argument.
Rozpoznawane s nastpujce symboliczne nazwy znakw: RUBOUT, DEL,
ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE i TAB.
Oprcz nazw polece readline pozwala przypisywa klawisze do
acucha. acuch ten zostanie wstawiony po naciniciu klawisza
(makro).
Przypisania klawiszy Readline
Skadnia przypisa klawiszy sterujcych w pliku inputrc jest
prosta. Wymagana jest wycznie nazwa polecenia lub tekst makra i
sekwencja klawiszy, do ktrej powinno by przypisane. Klawisze mog
by podane na dwa sposoby: jako symboliczna nazwa klawisza, moe
by z przedrostkami Meta- lub Control-, lub jako sekwencja klaw-
iszy.
Przy uyciu postaci nazwa-klaw:nazwa-funkcji lub makro, nazwa-
klaw jest nazw klawisza zapisan w jz.angielskim. Na przykad:
Control-u: universal-argument
Meta-Rubout: backward-kill-word
Control-o: "> output"
W powyszym przykadzie, C-u przypisane jest do funkcji univer-
sal-argument, M-DEL przypisane jest do funkcji back-
ward-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 rni si od nazwa-klaw powyej tym, e przez umieszczenie sek-
wencji w cudzysowach mona poda acuchy oznaczajce ca sekwencj
klawiszy. Mona posuy si niektrymi kombinacjami klawiszy w stylu
GNU Emacs-a, jak w poniszym przykadzie, nie s jednak rozpoz-
nawane symboliczne nazwy znakw:
"\C-u": universal-argument
"\C-x\C-r": re-read-init-file
"\e[11~": "Klawisz funkcyjny 1"
W tym przykadzie, C-u jest ponownie przypisane do funkcji uni-
versal-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 peny zestaw sekwencji spec-
jalnych w stylu GNU Emacs
\C- przedrostek control
\M- przedrostek meta
\e znak escape
\\ odwrotny ukonik
\" dosowny cudzysw "
\' dosowny apostrof '
Oprcz 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 powrt karetki (carriage return)
\t tabulacja pozioma (horizontal tab)
\v tabulacja pionowa (vertical tab)
\nnn omiobitowy znak, ktrego wartoci jest semkowa
liczba nnn (jedna do trzech cyfr)
\xHH omiobitowy znak, ktrego wartoci jest szesnastkowa
liczba nnn (jedna lub dwie cyfry szesnastkowe)
Podczas wprowadzania tekstu makra, do wskazania jego definicji
musz by uyte pojedyncze lub podwjne cudzysowy. Zakada si, e
tekst niecytowany jest nazw funkcji. W ciele makra interpre-
towane s sekwencje specjalne z uyciem odwrotnego ukonika opisane
powyej. odwrotny ukonik cytuje dowolny inny znak w tekcie makra,
cznie z " i '.
Bash umoliwia wywietlanie i zmian biecych przypisa klawiszy
readline za pomoc wbudowanego polecenia bind. Tryb edycji mona
przecza podczas uywania interaktywnego przez posuenie si opcj -o
wbudowanego polecenia set (zobacz poniej WBUDOWANE POLECENIA
POWOKI).
Zmienne Readline
Readline posiada zmienne, ktrych mona uywa do dodatkowego dos-
tosowania jej zachowania. Zmienna moe by ustawiana w pliku inpu-
trc 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 sygnau
dwikowego terminala. Jeli ustawiona na none, readline
nigdy nie emituje sygnau. Jeli ustawiona na visible,
readline posuguje si "widzialnym dzwonkiem" (visible
bell), jeli jest dostpny. Jeeli ustawiona na audible,
readline usiuje uzyska sygna dwikowy z terminala.
comment-begin (,,#'')
acuch 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
uzupenianie nazw plikw bez rozrniania wielkoci liter.
completion-query-items (100)
Okrela, kiedy uytkownik jest pytany o ogldanie takiej
liczby moliwych uzupenie tworzonych przez polecenie pos-
sible-completions. Moe by ustawiona na dowoln liczb
cakowit wiksz lub rwn zero. Jeeli liczba moliwych uzupe-
nie jest wiksza bd rwna 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 zamienia znaki z
ustawionym smym bitem na sekwencje klawiszy ASCII przez
obcicie smego bitu i poprzedzenie znakiem escape (w efek-
cie, uywajc escape jako przedrostka meta).
disable-completion (Off)
Jeli ustawione na On, readline zabroni uzupeniania sw.
Znaki uzupeniania zostan wstawione w wiersz tak, jakby
zostay przypisane do self-insert.
editing-mode (emacs)
Kontroluje czy readline rozpoczyna prac z zestawem przyp-
isa 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 usiowa wczy
numeryczny blok klawiatury (application keypad) przy
wywoaniu. Niektre systemy potrzebuj tego do wczenia
klawiszy strzaek.
expand-tilde (Off)
Jeeli ustawione na on, podczas prby uzupeniania sw read-
line wykonuje interpretacj tyldy.
history-preserve-point
Ustawione na on powoduje, e kod obsugi historii polece
usiuje w kadym wierszu polece odzyskanym za pomoc previ-
ous-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
posuguje si pojedynczym wierszem. Jeli wejcie jest dusze
ni szeroko ekranu, to jego zawarto jest wwczas przewijana
w poziomie w pojedynczym wierszu ekranu, zamiast zawija-
nia do nastpnego wiersza.
input-meta (Off)
Jeli ustawiona na On, readline dopuci omiobitowe wejcie
(to znaczy, nie bdzie obcina smego bitu z odczytywanych
znakw), bez wzgldu na to, co twierdzi terminal o moliwoci
obsugi. Nazwa meta-flag jest synonimem tej zmiennej.
isearch-terminators (,,C-[C-J'')
acuch znakw, ktry powinien przerywa wyszukiwanie krokowe
(incremental search) bez pniejszego 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
rwnowanikiem dla vi-command; emacs jest rwnowane
emacs-standard. Domyln wartoci jest emacs; warto edit-
ing-mode rwnie wpywa na domylne mapowanie.
mark-directories (On)
Jeeli ustawione na On, to uzupeniane nazwy katalogw maj
doczany kocowy ukonik.
mark-modified-lines (Off)
Jeeli ustawione na On, wiersze historii, ktre zostay
zmienione wywietlane s z poprzedzajc je gwiazdk (*).
match-hidden-files (On)
Ta zmienna, gdy jest ustawiona na On, powoduje, e read-
line wykonujc uzupenianie nazw plikw dopasowuje pliki,
ktrych nazwy zaczynaj si od kropki `.' (pliki ukryte),
chyba e uytkownik poda tak pocztkow kropk w nazwie, jaka
ma by uzupeniona.
output-meta (Off)
Jeeli ustawione na On, readline wywietla znaki z ustaw-
ionym smym bitem wprost zamiast jako sekwencje specjalne
z meta-przedrostkiem.
print-completions-horizontally (Off)
Jeeli ustawione na On, readline wywietla dopasowane uzu-
penienia w kolejnoci alfabetycznej poziomo, zamiast w d
ekranu.
show-all-if-ambiguous (Off)
Zmienia to domylne zachowanie funkcji uzupeniania. Jeeli
jest ustawione na on, to sowa majce wicej ni jedno moliwe
uzupenienie powoduj, e natychmiast zostan podane dopa-
sowania zamiast wyemitowania sygnau dwikowego.
visible-stats (Off)
Jeeli ustawione na On, to przy wywietlaniu moliwych uzu-
penie do nazwy pliku zostanie doczony 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
testw. Uywane s cztery dyrektywy analizatora skadni.
$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 suy do sprawdzania czy
readline jest w trybie emacs czy vi. Moe by wyko-
rzystywana, na przykad, w poczeniu 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 wczenia specy-
ficznych dla terminala przypisa klawiszy, by moe
do przypisania wyjcia dla sekwencji klawiszy
funkcyjnych terminala. Sowo po prawej stronie =
sprawdzane jest z zarwno pen nazw terminala, jaki
i czci jego nazwy przed pierwszym -. Umoliwia to,
na przykad, dopasowanie przez sun zarwno sun jak i
sun-cmd.
aplikacja
Konstrukcja aplikacja suy do wczania ustawie
specyficznych dla aplikacji. Kady program korzys-
tajcy z biblioteki readline ustawia nazw aplikacji
(application name), a plik inicjujcy moe sprawdzi
czy ma ona jak szczegln warto. Moe to by uywane
do przypisywania sekwencji klawiszy funkcjom przy-
datnym w danym programie. Na przykad, ponisze
polecenie dodaje sekwencj klawiszy wykonujc w bash
cytowanie biecego lub poprzedniego sowa:
$if Bash
# Cytuj biece lub poprzednie sowo
"\C-xq": "\eb\"\ef\""
$endif
$endif Polecenie to, jak wida w poprzednim przykadzie, koczy
wykonywanie polecenia $if.
$else Polecenia w tej gazi 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
przykad, ponisza dyrektywa odczytaaby /etc/inputrc:
$include /etc/inputrc
Wyszukiwanie
Readline zapewnia polecenia do wyszukiwania w historii polece
(zobacz poniej HISTORIA) wierszy zawierajcych zadany acuch.
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 znakw
szukanego acucha readline wywietla nastpn pozycj historii pasujc
do wpisanego do tej pory acucha. Wyszukiwanie krokowe wymaga
tylko tylu znakw ile potrzebne jest do znalezienia podanej pozy-
cji historii. Znaki wystpujce w wartoci zmiennej isearch-termi-
nators su 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, pozy-
cja historii zawierajca poszukiwany acuch staje si biecym wier-
szem.
W celu odnalezienia innych pasujcych pozycji, naley nacisn
odpowiednio Control-S lub Control-R. Wyszukuje to wstecz lub w
przd kolejn pasujc do dotychczas wpisanego acucha pozycj his-
torii. Wszystkie inne sekwencje klawiszy przypisane do polece-
nia readline przerywaj wyszukiwanie i wykonuj zadane polecenie.
Na przykad, znak nowej linii przerywa wyszukiwanie i akceptuje
wiersz, wykonujc skutkiem tego polecenie z listy historii.
Readline pamita acuch uyty w ostatnim wyszukiwaniu krokowym.
Jeeli Control-R zostanie nacinite dwa razy, bez wprowadzenia
pomidzy naciniciami innych znakw definiujcych nowy acuch szuka-
nia, to wykorzystywany jest uprzednio zapamitany acuch.
Wyszukiwania nie-krokowe czytaj cay szukany acuch przed rozpocz-
ciem wyszukiwania pasujcych wierszy historii. acuch moe by
wpisany przez uytkownika lub by czci zawartoci biecego wiersza.
Nazwy polece Readline
Poniej podano list nazw polece i domylnych sekwencji klawiszy,
do ktrych s one przypisane. Nazwy polece bez towarzyszcej sek-
wencji 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 przd.
backward-char (C-b)
Przesuwa o znak wstecz.
forward-word (M-f)
Przesuwa na koniec nastpnego sowa. Sowa zoone s ze znakw
alfanumerycznych (liter i cyfr).
backward-word (M-b)
Przesuwa na pocztek biecego, lub poprzedniego, sowa. Sowa
zoone s ze znakw alfanumerycznych (liter i cyfr).
clear-screen (C-l)
Czyci ekran pozostawiajc biecy wiersz na grze 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 kur-
sor. Jeeli wiersz ten nie jest pusty, to dodaje go do
listy historii stosownie do stanu zmiennej HISTCONTROL.
Jeeli wiersz jest zmienionym wierszem historii, to odt-
warza wiersz historii do stanu pierwotnego.
previous-history (C-p)
prowadza poprzednie polecenie z listy historii, prze-
suwajc 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 prze-
suwajc si, w razie potrzeby, 'w gr' historii. Jest to
wyszukiwanie krokowe.
forward-search-history (C-s)
Wyszukuje w przd poczynajc od biecego wiersza i prze-
suwajc si, w razie potrzeby, 'w d' historii. Jest to
wyszukiwanie krokowe.
non-incremental-reverse-search-history (M-p)
Wyszukuje wstecz poczynajc od biecego wiersza posugujc si
wyszukiwaniem nie-krokowym podanego przez uytkownika
acucha.
non-incremental-forward-search-history (M-n)
Wyszukuje w przd poczynajc od biecego wiersza posugujc si
wyszukiwaniem nie-krokowym podanego przez uytkownika
acucha.
history-search-forward
Wyszukuje w przd w historii acucha znakw pomidzy
pocztkiem biecego wiersza a punktem. Jest to wyszuki-
wanie nie-krokowe.
history-search-backward
Wyszukuje wstecz w historii acucha znakw 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 sowo z poprzedniego wiersza) w punkt (biec pozycj
kursora). Z argumentem n, wstawia n-te sowo poprzedniego
polecenia (sowa w poprzednim poleceniu zaczynaj si od
sowa 0). Argument ujemny wstawia n-te sowo od koca
poprzedniego polecenia.
yank-last-arg (M-., M-_)
Wstawia ostatni argument poprzedniego polecenia (ostatnie
sowo poprzedniej pozycji historii). Z argumentem,
zachowuje si dokadnie tak, jak yank-nth-arg. Kolejne
wywoania 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 powoka. Wykonuje to
aliasy i interpretacj historii, jak rwnie interpretacj sw
powoki. Zobacz INTERPRETACJA HISTORII poniej.
history-expand-line (M-^)
Wykonuje interpretacj powoki w odniesieniu do biecego
wiersza. Zobacz INTERPRETACJA HISTORII poniej.
magic-space
Wykonuje interpretacj powoki w odniesieniu do biecego
wiersza i wstawia spacj. Zobacz INTERPRETACJA HISTORII
poniej.
alias-expand-line
Wykonuje interpretacj aliasw w odniesieniu do biecego
wiersza. Zobacz ALIASY powyej.
history-and-alias-expand-line
Wykonuje interpretacj historii i aliasw 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 znakw w wierszu, a
ostatni wpisany znak zosta 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, wwczas usuwany jest znak przed kursorem.
quoted-insert (C-q, C-v)
Dodaje nastpny znak do wiersza dosownie. W ten sposb
wstawiane s znaki takie, jak na przykad 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, rwnoczenie przesuwajc punkt w przd. Jeeli punkt
jest na kocu wiersza to zamienia to miejscami dwa znaki
przed punktem. Argumenty ujemne nie skutkuj.
transpose-words (M-t)
Zamienia miejscami sowo sprzed punktu ze sowem za punk-
tem, przesuwajc rwnoczenie punkt za przesunite sprzed
niego sowo. Jeeli punkt jest na kocu wiersza to zamienia
to miejscami dwa ostanie sowa wiersza.
upcase-word (M-u)
Zamienia na wielkie litery biece (lub nastpne) sowo. Z
argumentem ujemnym zamienia na wielkie litery poprzednie
sowo, ale nie przesuwa punktu.
downcase-word (M-l)
Zamienia na mae litery biece (lub nastpne) sowo. Z argu-
mentem ujemnym zamienia na mae litery poprzednie sowo,
ale nie przesuwa punktu.
capitalize-word (M-c)
Zamienia na kapitaliki (pierwsza litera wielka, pozostae
mae) biece (nastpne) sowo. Z argumentem ujemnym zamienia
na kapitaliki poprzednie sowo, 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
pooenie punktu.
kill-word (M-d)
Usuwa od punktu do koca biecego sowa, lub jeli uyte
pomidzy sowami, do koca nastpnego sowa. Granice sw s
takie same, jak uywane przez forward-word.
backward-kill-word (M-Rubout)
Usuwa sowo sprzed punktu. Granice sw s takie same, jak
uywane przez backward-word.
unix-word-rubout (C-w)
Usuwa sowo sprzed punktu, jako separatora sw uywajc
biaych znakw. Usunity tekst zachowywany jest na stosie
usuni.
delete-horizontal-space (M-\)
Usuwa wszystkie spacje i tabulatory wok punktu.
kill-region
Usuwa tekst w biecym obszarze.
copy-region-as-kill
Kopiuje tekst obszaru do bufora usuwania.
copy-backward-word
Kopiuje sowo sprzed punktu do bufora usuwania. Granice
sw s takie same, jak dla backward-word.
copy-forward-word
Kopiuje sowo wystpujce po punkcie do bufora usuwania.
Granice sw s takie same, jak dla forward-word.
yank (C-y)
Wkleja wierzchoek stosu usuni do bufora w punkcie (w
miejscu kursora).
yank-pop (M-y)
Obraca stos usuni i wkleja nowy wierzchoek. Dziaa tylko
nastpujc po yank lub yank-pop.
Argumenty numeryczne
digit-argument (M-0, M-1, ..., M--)
Dodaje t cyfr do ju skadanego 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 powtrne wykonanie
universal-argument koczy argument numeryczny, ale w prze-
ciwnym 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 powtrze] wynosi pocztkowo cztery, tote
wykonanie tej funkcji po raz pierwszy nadaje mu warto
cztery, po raz drugi szesnacie, i tak dalej.
Uzupenianie
complete (TAB)
Usiuje przeprowadzi uzupenianie tekstu przed punktem.
Bash prbuje uzupeniania traktujc tekst kolejno: jako zmi-
enn (jeeli tekst zaczyna si od $), nazw uytkownika (jeli
tekst zaczyna si od ~), nazw hosta (i jeli tekst zaczyna
si od @) lub polecenie (cznie z aliasami i funkcjami).
Jeeli adne z powyszych nie daje dopasowania, to prbowane
jest uzupenianie nazw plikw.
possible-completions (M-?)
Pokazuje moliwe uzupenienia tekstu przed punktem.
insert-completions (M-*)
Wstawia przed punktem wszystkie uzupenienia tekstu, ktre
zostayby wygenerowane przez possible-completions.
menu-complete
Podobne do complete, ale zastpuje sowo, jakie ma zosta
uzupenione pojedynczym uzupenieniem z listy moliwych.
Powtarzane wykonanie menu-complete powoduje krokowe prze-
chodzenie przez list moliwych uzupenie i wstawianie
kadego z nich po kolei (zamiast uzupenianego sowa). Na
kocu listy uzupenie emitowany jest sygna dwikowy (zaleny
od ustawienia bell-style) i przywracany jest pierwotny
tekst. Argument n przesuwa n pozycji w przd 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-/)
Usiuje wykona uzupenianie nazw plikw na tekcie sprzed
kursora.
possible-filename-completions (C-x /)
Pokazuje moliwe uzupenienia tekstu sprzed kursora, trak-
tujc go jak nazw pliku.
complete-username (M-~)
Usiuje wykona uzupenianie tekstu sprzed kursora, traktujc
go jak nazw uytkownika.
possible-username-completions (C-x ~)
Pokazuje moliwe uzupenienia tekstu sprzed kursora, trak-
tujc go jak nazw uytkownika.
complete-variable (M-$)
Usiuje wykona uzupenianie tekstu sprzed kursora, traktujc
go jak zmienn powoki.
possible-variable-completions (C-x $)
Pokazuje moliwe uzupenienia tekstu sprzed kursora, trak-
tujc go jak zmienn powoki.
complete-hostname (M-@)
Usiuje wykona uzupenianie tekstu sprzed kursora, traktujc
go jak nazw hosta.
possible-hostname-completions (C-x @)
Pokazuje moliwe uzupenienia tekstu sprzed kursora, trak-
tujc go jak nazw hosta.
complete-command (M-!)
Usiuje uzupeni tekst sprzed punktu, traktujc go jak nazw
polecenia. Uzupenianie polecenia prbuje dopasowa tekst
kolejno do aliasw, sw zastrzeonych, funkcji powoki,
polece wbudowanych powoki i wreszcie nazw plikw wykony-
walnych.
possible-command-completions (C-x !)
Pokazuje moliwe uzupenienia tekstu sprzed kursora, trak-
tujc go jak nazw polecenia.
dynamic-complete-history (M-TAB)
Usiuje uzupeni tekst sprzed kursora, w celu odnalezienia
moliwych uzupenie porwnujc go z wierszami listy historii.
complete-into-braces (M-{)
Wykonuje uzupenianie nazwy pliku i wstawia list moliwych
uzupenie ujt w nawiasy klamrowe, tak e jest ona dostpna
dla powoki (zobacz powyej Interpretacja nawiasw).
Makra klawiaturowe
start-kbd-macro (C-x ()
Rozpoczyna zachowywanie wpisywanych znakw w biecym makrze
klawiaturowym.
end-kbd-macro (C-x ))
Zatrzymuje zachowywanie wpisywanych znakw w biecym makrze
klawiaturowym i przechowuje definicj.
call-last-kbd-macro (C-x e)
Ponownie wykonuje zdefiniowane makro klawiaturowe,
powodujc pojawianie si znakw makra tak, jakby zostay
wpisane z klawiatury.
Rne
re-read-init-file (C-x C-r)
Odczytuje zawarto pliku inputrc i docza wszystkie
znalezione tam przypisania klawiszy i zmiennych.
abort (C-g)
Zaniechuje biecego polecenia edycji i emituje sygna
dwikowy terminala (zgodnie z ustawieniami bell-style).
do-uppercase-version (M-a, M-b, M-x, ...)
Jeeli poprzedzony przedrostkiem meta znak x jest ma
liter, uruchamia plecenie, ktre jest przypisane do
odpowiedniej wielkiej litery.
prefix-meta (ESC)
Poprzed przedrostkiem meta nastpny wpisany znak. ESC f
jest rwnowane 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
przywrci wiersz do stanu pocztkowego.
tilde-expand (M-&)
Wykonuje interpretacj tyldy w odniesieniu do biecego
sowa.
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 poprzed-
nie 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 com-
ment-begin powoduje, e polecenie to czyni biecy wiersz
komentarzem powoki.
glob-expand-word (C-x *)
Sowo sprzed kursora traktowane jest jak wzorzec rozwija-
nia nazw plikw i wstawiana jest lista pasujcych nazw,
zastpujc sowo-wzorzec.
glob-list-expansions (C-x g)
Wywietlana jest lista rozwini, jakie zostayby utworzone
przez glob-expand-word, a wiersz jest ponownie wywiet-
lany.
dump-functions
Wypisuje do strumienia wyjciowego readline wszystkie
funkcje i ich przypisania klawiszy. Jeeli podano argument
numeryczny, wyjcie jest formatowane w taki sposb, 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
sposb, by mona zrobi je czci pliku inputrc.
dump-macros
Wypisuje wszystkie sekwencje klawiszy readline przypisane
do makr i acuchy jakie daj w wyniku. Jeeli podano argu-
ment numeryczny, wyjcie jest formatowane w taki sposb,
by mona zrobi je czci pliku inputrc.
display-shell-version (C-x C-v)
Wywietla informacj o wersji aktualnego egzemplarza bash.
Programowalne uzupenianie
Gdy nastpuje prba uzupenienia sowa dla argumentu polecenia, dla
ktrego zdefiniowano specyfikacj uzupeniania (completion specifi-
cation, compspec) przy pomocy wbudowanego polecenia complete
(zobacz WBUDOWANE POLECENIA POWOKI poniej), wywoywane s usugi
programowalnego uzupeniania.
Po pierwsze, identyfikowana jest nazwa polecenia. Jeeli dla
tego polecenia zdefiniowano compspec, to compspec jest uywane do
utworzenia listy moliwych uzupenie sowa. Jeeli sowo polecenia
jest pen nazw ciekow, to najpierw szukane jest compspec dla
penej nazwy. Jeli nie zostanie odnalezione, to nastpuje prba
znalezienia compspec dla czci wystpujcej po ostatnim ukoniku.
Po odnalezieniu compspec, jest ono uywane do utworzenia listy
pasujcych sw. Jeeli compspec nie zostao znalezione, to wykony-
wane jest domylne uzupenianie basha, jak opisano powyej w Uzupe-
nianie.
Na pocztek, uywane s akcje okrelone przez compspec. Zwracane s
wycznie dopasowania poprzedzone dopasowywanym sowem. Gdy do
uzupeniania nazw plikw lub katalogw uyto opcji -f lub -d, do
filtrowania dopasowa wykorzystywana jest zmienna powoki FIGNORE.
W nastpnej kolejnoci tworzone s ewentualne uzupenienia okrelone
przez wzorzec rozwinicia nazw plikw opcji -G. Sowa tworzone
przez wzorzec nie musz pasowa do uzupenianego sowa. Zmienna
powoki GLOBIGNORE nie jest uywana do filtrowania dopasowa, ale
zmienna FIGNORE jest uywana.
Nastpnie, brany jest pod uwag acuch podany jako argument opcji
-W. acuch jest najpierw rozbijany przy zastosowaniu znakw ze
zmiennej specjalnej IFS jako separatorw. Honorowane jest
cytowanie powoki. Pniej kade ze sw interpretowane jest z wyko-
rzystaniem interpretacji nawiasw, interpretacji tyld, podstawia-
nia parametrw, interpretacji zmiennych i wyrae arytmetycznych,
podstawiania wynikw polece i rozwijania nazw ciekowych, jak
opisano powyej w sekcji INTERPRETACJA. Wyniki s rozbijane z
zastosowaniem regu opisanych powyej w sekcji Podzia na sowa.
Wyniki interpretacji s dopasowywane przedrostkiem z uzupenianym
sowem, a pasujce sowa staj si moliwymi uzupenieniami.
Po utworzeniu tych dopasowa, wywoywana jest funkcja lub polece-
nie okrelone opcjami -F i -C. Podczas wywoywania polecenia czy
funkcji, zmiennym COMP_LINE i COMP_POINT przypisywane s wartoci,
jak opisano to powyej w sekcji Zmienne powoki. Jeeli wywoywana
jest funkcja powoki, ustawiane s rwnie zmienne COMP_WORDS i
COMP_CWORD. Kiedy wywoywana jest funkcja czy polecenie, pier-
wszym argumentem staje si nazwa polecenia, ktrego argumenty s
uzupeniane, drugim argumentem -- uzupeniane sowo, a trzecim sowo
poprzedzajce w wierszu polece sowo aktualnie uzupeniane. Nie
jest wykonywane adne filtrowanie utworzonych uzupenie stosownie
do uzupenianego sowa. Funkcja czy polecenie maj pen swobod
tworzenia dopasowa.
W pierwszej kolejnoci wywoywana jest funkcja okrelona przez -F.
Do tworzenia dopasowa moe ona korzysta z dowolnych moliwoci
powoki, cznie z opisanym poniej poleceniem wbudowanym compgen.
Funkcja musi umieci moliwe uzupenienia w zmiennej tablicowej
COMPREPLY.
Nastpnie, wywoywane jest polecenie okrelone opcj -C, dziaajce w
rodowisku rwnowanym podstawianiu polece. Powinno ono wypisa
list uzupenie, po jednym w wierszu, na standardowe wyjcie.
Jeeli jest to niezbdne, do utworzenia znaku nowej linii mona uy
odwrconego ukonika.
Po utworzeniu wszelkich moliwych uzupenie, 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 uzupenianego sowa. Litera & mona
otrzyma poprzedzajc go odwrotnym ukonikiem; odwrotny ukonik
zostanie usunity przed prb dopasowania. Wszystkie uzupenienia
pasujce do wzorca bd usunite z listy. Pocztkowy ! daje
zaprzeczenie wzorca. Bd wwczas usuwane uzupenienia 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 uzupeniania readline jako lista moliwych uzupenie.
Jeli poprzednio zastosowane dziaania nie utworzyy adnych dopa-
sowa, za przy definiowaniu compspec podano opcj -o dirnames
polecenia complete, to dokonywana jest prba uzupenienia nazwy
katalogu.
Domylnie, jeeli znaleziono compspec, to cokolwiek ono utworzy
zwracane jest do kodu uzupeniajcego jako peny zestaw moliwych
uzupenie. Nie s prbowane domylne uzupenienia bash, a domylne
uzupenianie nazw ciekowych przez readline jest wyczone. Jeli
przy definiowaniu compspec podano opcj -o default polecenia com-
plete, to jeeli compspec nie utworzy adnych uzupenie, wykonane
zostanie domylne uzupenianie z readline.
Jeeli wczona jest opcja -o history wbudowanego polecenia set, to
powoka zapewnia dostp do historii polece, listy polece poprzed-
nio wprowadzonych. Warto zmiennej HISTSIZE wykorzystywana jest
jako liczba polece do zachowania na licie historii. Zachowywany
jest tekst ostatnich HISTSIZE polece (domylnie 500. Powoka prze-
chowuje kade polecenie na licie przed podstawieniem wartoci
parametrw i zmiennych (zobacz powyej INTERPRETACJA), ale przed
wykonaniem interpretacji historii, w zalenoci od wartoci zmien-
nych powoki 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 zawiera nie wicej wierszy ni okrelono to wartoci
zmiennej HISTFILESIZE. Podczas koczenia pracy powoki interakty-
wnej, ostatnie $HISTSIZE wierszy kopiowane jest z listy historii
do $HISTFILE. Jeeli wczona jest opcja powoki histappend (zobacz
opis shopt w sekcji WBUDOWANE POLECENIA POWOKI poniej), to wier-
sze 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
zawiera 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
POWOKI poniej). Wbudowanego polecenia history mona uywa do
wywietlania lub zmiany listy historii i manipulacji plikiem his-
torii. Podczas posugiwania si edycj wiersza polece, w kadym z
trybw edycji umoliwiajcych dostp do listy historii, dostpne s
polecenia przeszukiwania.
Powoka umoliwia kontrol nad tym, jakie polecenia s zachowywane
na licie. Mona ustawi zmienne HISTCONTROL i HISTIGNORE, co
spowoduje, e powoka bdzie zachowywa tylko podzbir wprowadzonych
polece. Opcja powoki cmdhist, jeeli jest wczona, powoduje, e
powoka bdzie usiowa zachowa kady wiersz polecenia wielowier-
szowego w tej samej pozycji historii, dodajc, gdzie jest to
niezbdne, redniki, by zachowa poprawno skadni. Opcja powoki
lithist powoduje, e powoka bdzie zachowywa polecenia z osad-
zonymi znakami nowej linii zamiast rednikw. Zobacz opis wbu-
dowanego shopt poniej, w sekcji WBUDOWANE POLECENIA POWOKI,
gdzie znajdziesz informacje o ustawianiu i kasowaniu opcji
powoki.
Powoka obsuguje funkcj interpretacji historii, podobn do inter-
pretacji historii w csh. Ta sekcja opisuje dostpne moliwoci
skadni. Funkcja ta jest domylnie wczona dla powok interaktywnych
i moe by wyczona przy pomocy opcji +H wbudowanego polecenia set
(zobacz poniej WBUDOWANE POLECENIA POWOKI). Powoki nie-interak-
tywne domylnie nie wykonuj interpretacji historii.
Interpretacja historii wprowadza sowa z listy historii do stru-
mienia wejciowego, uatwiajc powtarzanie polece lub poprawianie
szybkie bdw w poprzednich poleceniach.
Interpretacja historii przeprowadzana jest bezporednio po
przeczytaniu penego wiersza, przed jego podziaem na sowa przez
powok. Odbywa si w dwu czciach. Pierwsz jest okrelenie, ktry
wiersz z listy historii ma zosta uyty podczas podstawiania.
Drug stanowi wybr czci tego wiersza do wczenia w biecy. Wybrany
z historii wiersz jest zdarzeniem (event), a jego czci na ktrych
wykonywane s dziaania s sowami. Dostpne s rne modyfikatory do
manipulowania wybranymi sowami. Wiersz rozbijany jest na sowa w
ten sam sposb jak podczas odczytu wejcia, tak e kilka sw sepa-
rowanych metaznakami ujtych w cudzysowy traktowanych jest jak
jedno sowo. Interpretacja historii wprowadzana s obecnoci znaku
rozwijajcego histori, ktrym domylnie jest !. Cytowa ten znak
mog wycznie odwrotny ukonik (\) i pojedyncze cudzysowy.
Kilka opcji powoki ustawianych przy pomocy shopt moe suy do
ledzenia dziaania interpretacji historii. Jeeli opcja histver-
ify powoki jest wczona (zobacz opis wbudowanego shopt) i uywane
jest readline, to podstawienia historii nie s natychmiast
przesyane do analizatora skadni (parsera) powoki. Zamiast tego,
zinterpretowany wiersz jest ponownie adowany do bufora edy-
cyjnego readline w celu dalszej modyfikacji. Jeeli wykorzysty-
wane jest readline i wczona jest opcja histreedit, to zakoczone
niepowodzeniem podstawienie historii zostanie ponownie zaadowane
do bufora edycyjnego readline w celu poprawienia. Opcj -p wbu-
dowanego polecenia history mona posuy si do ogldnicia, co zrobi
interpretacja historii przed jej zastosowaniem. Opcji -s wbu-
dowanego polecenia history mona uy w celu dodania polece na
koniec listy historii bez faktycznego ich wykonania, tak e bd
dostpne dla nastpnych przywoa.
Powoka pozwala na kontrolowanie rnych znakw stosowanych przez
mechanizm interpretacji historii (zobacz opis histchars powyej,
w sekcji Zmienne powoki).
Desygnatory zdarze (Event Designators)
Desygnator zdarzenia jest odwoaniem 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'.
!acuch Wskazuje na ostatnie poleceniem rozpoczynajce si od
acucha.
!?acuch[?]
Wskazuje na ostatnie polecenie zawierajce acuch. Koczce
? mona pomin jeli bezporednio po acuchu wystpuje znak
nowej linii.
^acuch1^acuch2^
Szybkie podstawianie. Powtarza ostatnie polecenie,
wymieniajc acuch1 na acuch2. Rnowanik
,,!!:s/acuch1/acuch/'' (zobacz poniej Modyfikatory).
!# Cay wiersz polece wpisany do tego momentu.
Desygnatory sw (Word Designators)
Desygnatory sw su do wybierania ze zdarzenia danych sw.
Dwukropek : oddziela okrelenie zdarzenia od desygnatora sowa.
Moe by pominity jeli desygnator sowa rozpoczyna si od ^, $, *, -
lub %. Sowa numerowane s od pocztku wiersza, przy czym pierwsze
ma numer 0 (zero). Sowa s wstawiane do biecego wiersza,
rozdzielane pojedynczymi spacjami.
0 (zero)
Sowo zerowe. Dla powoki jest to sowo polecenia.
n n-te sowo.
^ Pierwszy argument. To znaczy, sowo 1.
$ Ostatni argument.
% Sowo dopasowane przez ostatnie wyszukanie `?acuch?'.
x-y Zakres sw; `-y' jest skrconym `0-y'.
* Wszystkie sowa prcz zerowego. jest to synonim dla `1-$'.
Nie jest bdem uycie * jeli w zdarzeniu jest tylko jedno
sowo; w tym przypadku zwracany jest acuch pusty.
x* Skrt od x-$.
x- Skrt od x-$ podobnie jak x*, ale pomija ostatnie sowo.
jeli desygnator sowa podano bez okrelenia zdarzenia, za zdarze-
nie przyjmowane jest poprzednie polecenie.
Modyfikatory
Po opcjonalnym desygnatorze sowa moe pojawi si sekwencja jednego
lub wicej poniszych modyfikatorw, kady poprzedzony dwukropkiem
`:'.
h Usuwa kocow skadow nazwy pliku, pozostawiajc tylko
pocztek.
t Usuwa wszystkie pocztkowe skadowe nazwy pliku, pozostaw-
iajc koniec.
r Usuwa koczcy przyrostek postaci .xxx, pozostawiajc gwn cz
nazwy (basename).
e Usuwa wszystko prcz kocowego przyrostka.
p Wypisuje nowe polecenie, ale go nie wykonuje.
q Cytuje podstawiane sowa, zabezpieczajc je przed dalszym
podstawianiem.
x Cytuje podstawiane sowa jak q, ale rozbija na sowa w
miejscach odstpw i znakw 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 cytowa &. Jeeli
stary jest pusty, to ustawiany jest na ostatni podstaw-
iany stary lub, jeli nie byo poprzednich podstawie his-
torii, ostatni acuch w wyszukiwaniu !?acuch[?].
& Powtarza poprzednie podstawienie.
g Powoduje, e zmiany zostan zastosowane do caego wiersza
zdarzenia. Uywany w poczeniu z `:s' (np. `:gs/old/new/')
lub `:&'. Jeli uyty z `:s', to zamiast / mona posuy si
dowolnym separatorem, a ostatni separator jest opcjonalny
jeeli jest ostatnim znakiem wiersza zdarzenia.
Jeli nie podano inaczej, kade z polece wbudowanych opisanych w
niniejszej sekcji jako akceptujce opcje poprzedzone - akceptuje
rwnie symbol -- okrelajcy koniec opcji.
: [argumenty]
Bez efektw; polecenie to nie robi niczego poza interpre-
tacj argumentw i wykonaniem ewentualnych podanych
przekierowa. Zwracany jest zerowy kod zakoczenia.
. plik [argumenty]
source plik [argumenty]
Odczytuje i wykonuje polecenia z zadanego pliku w aktual-
nym rodowisku powoki i zwraca kod zakoczenia ostatniego
wykonanego polecenia z tego pliku. Jeeli nazwa pliku nie
zawiera ukonika, to do znalezienia katalogu go zawiera-
jcego uywana jest zmienna PATH. Plik poszukiwany w PATH
nie musi by wykonywalny. Jeli bash nie jest w trybie
posix, wwczas jeeli nie znaleziono pliku w PATH, to
przeszukiwany jest katalog biecy. Jeli we wbudowanym
poleceniu shopt wyczona 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 zakoc-
zonego przez skrypt polecenia (0 jeli nie wykowano adnego
polecenia), a faszem jeeli nie znaleziono pliku lub nie
mona go odczyta.
alias [-p] [nazwa[=warto] ...]
Alias bez argumentw bd z opcj -p wypisuje na standardowym
wyjciu list aliasw w postaci alias nazwa=warto. Jeli nie
dostarczono argumenty, to definiowany jest alias (syn-
onim) dla kadej nazwy, dla ktrej podano warto. Pocztkowa
spacja w wartoci powoduje, e podczas interpretacji aliasu
nastpne sowo bdzie sprawdzane na podstawianie aliasw.
Dla kadej nazwy z listy argumentw, dla ktrej nie podano
wartoci, wypisywana jest nazwa i warto aliasu. Alias
zwraca prawd, chyba e podano nazw, dla ktrej nie zosta
zdefiniowany aden alias.
bg [spec_zad]
Wznawia w tle zawieszone zadanie spec_zad, tak jakby
zostao ono uruchomione z &. Jeli spec_zad nie wystpuje,
to uywane jest biece zadanie, okrelone tak, jak je poj-
muje powoka. bg spec_zad zwraca 0, chyba e uruchomiono
je przy wyczonej kontroli zada (job control) lub uru-
chomiono z wczon 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_powoki
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. Skadnia tych przypisa jest
identyczna jak dla .inputrc, ale kade z przypisa musi by
przesane 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 ktrej
maj by zastosowane nastpne przypisania. Akcep-
towanymi nazwami map klawiszy s emacs, emacs-stan-
dard, emacs-meta, emacs-ctlx, vi, vi-move, vi-com-
mand i vi-insert. vi rwnowane jest vi-command;
emacs jest rwnowane emacs-standard.
-l Podaje nazwy wszystkich funkcji readline.
-p Wywietla nazwy funkcji i przypisania w taki sposb,
e mog by ponownie odczytane.
-P Podaje biece przypisania i nazwy funkcji readline.
-v Wywietla nazwy i wartoci zmiennych readline w taki
sposb, e mog by ponownie odczytane.
-V Podaje biece nazwy i wartoci zmiennych readline.
-s Wywietla sekwencje klawiszy readline przypisane do
makr i acuchy jakie one wysyaj w taki sposb, e mog
by ponownie odczytane.
-S Wywietla sekwencje klawiszy readline przypisane do
makr i acuchy jakie one wysyaj.
-f plik
Czyta przypisania klawiszy z pliku.
-q funkcja
Podaje, ktre klawisze wywouj podan funkcj.
-u funkcja
Odwouje przypisania wszystkich klawiszy przyp-
isanych do danej funkcji.
-r sekw_klaw
Usuwa biece przypisania dla sekwencji klawiszy.
-x sekw_klaw:polec_powoki
Powoduje, e za kadym naciniciem sekwencji klawiszy
zostanie wykonane polecenie powoki.
Zwracana jest warto 0, chyba e podano nierozpoznan opcj
lub pojawi si bd.
break [n]
Opuszcza ptl for, while, until lub select. Jeeli podano
n, przerywa dziaanie 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 powoka nie wykonuje ptli podczas wykona-
nia break.
builtin wbudowane [argumenty]
Wykonuje zadane polecenie wbudowane powoki, przesyajc mu
argumentyizwracajegokodzakoczenia. Przydatne podczas
definiowania funkcji o nazwie tosamej z nazw wbudowanego
polecenia powoki, zachowujc funkcjonalno polecenia wbu-
dowanego wewntrz funkcji. Wbudowane cd jest powszechnie
redefiniowane w ten sposb. Kodem zakoczenia jest fasz
jeli wbudowane nie jest wbudowanym poleceniem powoki.
cd [-LP] [katalog]
Zmienia biecy katalog roboczy na dir. Zmienna HOME jest
domylnym katalogiem. Zmienna CDPATH definiuje ciek
przeszukiwa dla katalogu zawierajcego katalog. Alter-
natywne nazwy katalogw 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 katalogw zamiast poda-
nia za dowizaniami symbolicznymi (zobacz te opcja -P wbu-
dowanego polecenia set); Opcja -L wymusza podanie za dow-
izaniami symbolicznymi. Argument - jest rwnowany $OLD-
PWD. Wartoci zwracan jest prawda jeli pomylnie zmieniono
katalog; w przeciwnym przypadku fasz.
command [-pVv] polecenie [arg ...]
Uruchamia polecenie z argumentami zakazujc zwykego
wyszukiwania funkcji przez powok. Wykonywane s wycznie
polecenia wbudowane i polecenia znalezione w PATH. Jeeli
podano opcj -p, wyszukiwanie polecenia wykonywane jest
przy uyciu domylnej PATH, ktra gwarantuje znalezienie
wszystkich standardowych narzdzi. Jeli uyto albo opcji
-V albo -v, to wypisywany jest opis polecenia. Opcja -v
powoduje, e zostanie wywietlone pojedyncze sowo wskazujce
polecenie lub nazw pliku, uyte do wywoania 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 pojawi si bd lub nie mona znale
polecenia, to kod zakoczenia wynosi 127. W przeciwnym
wypadku kodem zakoczenia wbudowanego polecenia command
jest kod zakoczenia polecenia.
compgen [opcja] [sowo]
Tworzy moliwe dopasowania uzupenie dla sowa zgodnie z
opcjami, ktre 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, rne zmienne powoki ustawiane
przez usugi programowalnego uzupeniania, gdy s dostpne,
nie bd mie uytecznych wartoci.
Dopasowania bd tworzone w ten sam sposb, jakby kod uzupe-
niania programowalnego tworzy je wprost ze specyfikacji
uzupeniania z tymi samymi flagami. Jeeli podano sowo, to
wywietlone zostan wycznie uzupenienia do pasujce.
Wartoci zwracan jest prawda, chyba e podano niepoprawn
opcj lub nie zostay utworzone adne dopasowania.
complete [-abcdefgjkvu] [-o opcjacomp] [-A akcja] [-G wzglob]
[-W listasw] [-P przedrostek] [-S przyrostek]
[-X wzfiltr] [-F funkcja] [-C polecenie] nazwa [nazwa
...]
complete -pr [nazwa ...]
Okrela, w jaki sposb bd uzupeniane argumenty dla kadej z
nazw. Jeeli podano opcj -p, lub nie podano adnych opcji,
to wypisywane s istniejce specyfikacje uzupeniania - w
sposb, ktry pozwala na ich ponowne wykorzystanie jako
wejcia. Opcja -r usuwa specyfikacj uzupeniania dla kadej
z nazw, lub jeli nazw nie podano, wszystkie specyfikacje
uzupeniania.
Proces stosowania tych specyfikacji uzupenie podczas prb
uzupeniania sw omwiono powyej w sekcji Programowalne uzu-
penianie.
Pozostae opcje, jeli je podano, maj niej opisane znacze-
nie. Argumenty opcji -G, -W i -X (i, jeli to niezbdne,
-P i -S) powinny by cytowane dla ochrony przed interpre-
tacj jaka wystpi zanim zostanie wywoane polecenie com-
plete.
-o opcjacomp
Warto opcjacomp reguluje kilka aspektw zachowania
si compspec wykraczajcych poza zwyke tworzenie
uzupenie. opcjacomp przyjmuje jedn z wartoci:
default Stosuje domylne uzupenianie readline jeli
compspec nie utworzy adnych dopasowa.
dirnames
Wykonuje uzupenianie nazw katalogw jeli
compspec nie utworzy adnych dopasowa.
filenames
Powiadamia readline, e compspec tworzy
nazwy plikw, zatem moe wykona
przetwarzanie specyficzne dla takich nazw
(jak dodanie ukonika do nazw katalogw czy
usunicie kocowych spacji). Zaprojektowane
do stosowania z funkcjami powoki.
-A akcja
akcja moe by jedn z poniszych, tworzcych list
moliwych dopasowa:
alias Nazwy aliasw. Mona te poda jako -a.
arrayvar
Nazwy zmiennych tablicowych.
binding Nazwy przypisa klawiszy readline.
builtin Nazwy wbudowanych polece powoki. Mona te
poda jako -b.
command Nazwy polece. Mona te poda jako -c.
directory
Nazwy katalogw. Mona te poda jako -d.
disabled
Nazwy wyczonych polece wbudowanych
powoki.
enabled Nazwy wczonych polece wbudowanych powoki.
export Nazwy wyeksportowanych zmiennych powoki.
Mona te poda jako -e.
file Nazwy plikw. Mona te poda jako -f.
function
Nazwy funkcji powoki.
group Nazwy grup. Mona te poda jako -g.
helptopic
Tematy pomocy akceptowane przez wbudowane
polecenie help.
hostname
Nazwy hostw, pobrane z pliku okrelonego
przez zmienn powoki HOSTFILE.
job Nazwy zada, jeeli aktywne jest sterowanie
zadaniami. Mona te poda jako -j.
keyword Zastrzeone sowa powoki. Mona te poda jako
-k.
running Nazwy dziaajcych zada, jeeli aktywne jest
sterowanie zadaniami.
setopt Dozwolone argumenty opcji -o polecenia
wbudowanego set.
shopt Nazwy opcji powoki, takie, jakie akcep-
tuje polecenie wbudowane shopt.
signal Nazwy sygnaw.
stopped Nazwy zatrzymanych zada, jeli aktywne
jest sterowanie zadaniami.
user Nazwy uytkownikw. Mona te poda jako -u.
variable
Nazwy wszystkich zmiennych powoki. Mona
te poda jako -v.
-G wzglob
Wzorzec rozwijania nazw plikw wzglob jest rozwi-
jany, tworzc list moliwych uzupenie.
-W listasw
listasw jest rozbijana przy zastosowaniu znakw ze
zmiennej specjalnej IFS jako separatorw, a kade
ze sw wynikowych jest interpretowane. Moliwe
uzupenienia s elementami listy wynikowej, pasuj-
cymi do uzupenianego sowa.
-C polecenie
polecenie wykonywane jest w rodowisku podpowoki,
a jego wyjcie uywane jest jako moliwe uzupe-
nienia.
-F funkcja
Funkcja powoki funkcja wykonywana jest w biecym
rodowisku powoki. Po jej zakoczeniu, moliwe uzu-
penienia pobierane s z wartoci zmiennej tabli-
cowej COMPREPLY.
-X wzfiltr
wzfiltr jest wzorcem uywanym do rozwijania nazw
plikw. Stosowany jest do listy moliwych uzupenie
utworzonej przez poprzedzajce go opcje i argu-
menty, a kade pasujce do niego uzupenienie jest
usuwane z listy. Pocztkowy ! w wzfiltr powoduje
negacj wzorca; usuwane s wwczas uzupenienia nie
pasujce do wzfiltr.
-P przedrostek
Po zastosowaniu wszystkich innych opcji na
pocztku kadego moliwego uzupenienia jest dodawany
przedrostek.
-S przyrostek
Po zastosowaniu wszystkich innych opcji na kocu
kadego moliwego uzupenienia jest doczany przy-
rostek.
Wartoci zwracana jest prawda, chyba e podano niepoprawn
opcj, podano bez argumentu nazwa opcj inn ni -p lub -r,
usiowano usun specyfikacj uzupeniania dla nazwy, dla
ktrej nie istnieje adna specyfikacja, albo te podczas
dodawania specyfikacji uzupeniania wystpi bd.
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 obej-
mujcych ptli, to wznawiana jest ostatnia z ptli
(,,najwysza''). Warto zwracana wynosi 0, chyba e powoka
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 wynikw do zmien-
nych o okrelonym atrybucie lub do nadania zmiennym atry-
butw:
-a Kada z nazw jest zmienn tablicow (zobacz Tablice
powyej).
-f Uywa wycznie nazw funkcji.
-i Zmienna jest traktowana jak cakowita; gdy zmiennej
jest przypisywana warto, wykonywana jest interpre-
tacja 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 `-' wycza 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, prb zdefiniowania
funkcji przy pomocy ,,-f foo=bar'', przypisania wartoci
zmiennej readonly, przypisania wartoci zmiennej tabli-
cowej bez uycia skadni przypisania zoonego (zobacz
Tablice powyej), jedna z nazw nie jest poprawn nazw zmi-
ennej powoki, usiowano wyczy status readonly dla zmiennej
tylko do odczytu, wyczy status tablicy dla zmiennej
tablicowej albo prbowano wywietli nieistniejc funkcj przy
pomocy -f.
dirs [-clpv] [+n] [-n]
Bez opcji wywietla list aktualnie zapamitanych katalogw.
Domylnie wywietlana jest ona w pojedynczym wierszu, z
nazwami katalogw rozdzielonymi spacjami. Katalogi
dodawane s do listy poleceniem pushd polecenie popd usuwa
pozycje z listy.
+n Wywietla nt pozycj liczc od lewej na licie pokazy-
wanej przez dirs przy wywoaniu bez opcji; pocztkow
jest zero.
-n Wywietla nt pozycj liczc od prawej na licie
pokazywanej przez dirs przy wywoaniu bez opcji;
pocztkow jest zero.
-c Czyci stos katalogw usuwajc wszystkie jego pozy-
cje.
-l Tworzy duszy listing; domylnie format listingu
posuguje si tyld do oznaczania katalogu domowego.
-p Wypisuje stos katalogw po jednej pozycji na
wiersz.
-v Wypisuje stos katalogw po jednej pozycji na
wiersz, poprzedzajc kad z nich jej pozycj (indek-
sem) w stosie.
Wartoci zwracan jest 0, chyba e podano nieprawidow opcj
lub n wskazuje poza koniec stosu katalogw.
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 wysyany sygna SIGHUP jeli
powoka 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 zaz-
naczenie wszystkich zada; opcja -r bez argumentu zadania
ogranicza akcj do dziaajcych 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 wysyany koczcy znak nowej
linii. Jeeli podano opcj -e, wczana jest interpretacja
podanych niej znakw specjalnych. Opcja -E wycza interpre-
tacj tych znakw, nawet na systemach, gdzie s one domylnie
interpretowane. Do dynamicznego sprawdzania, czy echo
interpretuje domylnie te znaki, czy nie, suy opcja powoki
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 powrt karetki (carriage return)
\t tabulacja pozioma (horizontal tab)
\v tabulacja pionowa (vertical tab)
\\ odwrotny ukonik (backslash)
\nnn omiobitowy znak, ktrego wartoci jest semkowa
liczba nnn (jedna do trzech cyfr)
\xHH omiobitowy znak, ktrego wartoci jest szesnastkowa
liczba nnn (jedna lub dwie cyfry szesnastkowe)
enable [-adnps] [-f plik] [nazwa ...]
Wcza i wycza wbudowane polecenia powoki. Wyczenie polece
wbudowanych umoliwia wykonanie polecenia dyskowego
majcego t sam nazw, co wbudowane, bez podawania jego
penej nazwy ciekowej, mimo i powoka normalnie szuka
polece wbudowanych przed poleceniami dyskowymi. Jeeli
posuono si opcj -n, wyczana jest kada z nazw; w przeci-
wnym razie nazwy s wczone. Na przykad, chcc uy pliku
binarnego test znalezionego przez PATH zamiast wersji
wbudowanej w powok, naley uruchomi ,,enable -n test''.
Opcja -f oznacza zaadowanie nowego polecenia wbudowanego
nazwa z obiektu dzielonego (shared object) plik, na sys-
temach obsugujcych dynamiczne adowanie. Opcja -d usunie
polecenie wbudowane zaadowane poprzednio przez -f. Jeeli
nie podano adnych argumentw nazwa lub jeli podano opcj
-p, wypisywana jest lista polece wbudowanych powoki. Bez
innych argumentw opcyjnych, lista ta skada si ze wszyst-
kich wczonych polece wbudowanych. Jeli podano -n, wyp-
isywane s tylko wyczone polecenia wbudowane. Jeeli
podano -a, wypisywana lista zawiera wszystkie polecenia
wbudowane, ze wskazaniem przy kadym czy jest ono wczone
czy te nie. Jeeli podano -s, wyjcie ograniczone jest do
POSIXowych ,,specjalnych'' polece wbudowanych. Wartoci
zwracan jest 0, chyba e nazwa nie jest poleceniem wbu-
dowanym powoki lub wystpi bd podczas adowania nowego
polecenia wbudowanego z obiektu dzielonego.
eval [argument ...]
Argumenty s czytane i czone w pojedyncze polecenie.
Polecenie to jest nastpnie odczytywane i wykonywane przez
powok, za jego kod zakoczenia jest zwracany jako warto
eval. Jeeli nie na adnych argumentw, lub wszystkie argu-
menty s puste, eval zwraca 0.
exec [-cl] [-a nazwa] [polecenie [argumenty]]
Jeeli podano polecenie, zastpuje ono powok. Nie tworzony
jest aden nowy proces. Argumenty staj si argumentami
polecenia. Jeli podano opcj -l, umieszcza kresk na
pocztku zerowego argumentu przesyanego do polecenia. Tak
samo, jak robi to login(1). Opcja -c powoduje, e polece-
nie zostanie wykonane z pustym rodowiskiem. Jeeli podano
-a, powoka przesya do wykonywanego polecenia nazw jako
zerowy argument. Jeeli polecenie z jakiego powodu nie moe
zosta wykonane, to powoka nie-interaktywna koczy prac,
chyba e wczona jest opcja powoki execfail, wwczas zwraca
niepowodzenie. Powoka interaktywna zwraca niepowodzenie
jeli plik nie moe zosta wykonany. Jeeli nie podano
polecenia, przekierowania skutkuj w biecej powoce, a
kodem zakoczenia jest 0. W przypadku bdu przekierowania
kod zakoczenia wynosi 1.
exit [n]
Powoduje, e powoka koczy prac z kodem rwnym n. Jeli
pominito n, kodem zakoczenia jest kod ostatniego wyko-
nanego polecenia. Przed kocem pracy powoki wykonywane
jest przechwycenie sygnau EXIT.
export [-fn] [nazwa[=sowo]] ...
export -p
Podane nazwy zaznaczane s do automatycznego wyeksportowa-
nia 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 wypisy-
wana jest lista wszystkich eksportowanych w tej powoce
nazw. Opcja -n powoduje usunicie cechy eksportowania z
podanych zmiennych. export zwraca zerowy kod zakoczenia,
chyba e napotkano nieprawidow opcj, jedna z nazw nie jest
poprawn nazw zmiennej powoki lub podano -f z nazw, ktra
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 acuch (do odnalezienia ostatniego polecenia
rozpoczynajcego si tym acuchem) lub jako liczba (indeks w
licie historii, gdzie liczba ujemna uywana jest jako off-
set od numeru biecego polecenia), Jeeli nie okrelono
ostatniego, to jest ono ustawiane na biece polecenie w
przypadku listowania (tak e ,,fc -l -10'' wypisuje ostat-
nich 10 polece) i na pierwsze w pozostaych 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 numerw 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 wywoywany jest edytor podany przez nazwa_e.
Jeeli nie podano nazwa_e, uywana jest warto FCEDIT, a
warto EDITOR jeli nie ustawiono FCEDIT. Jeeli nie ustaw-
iono adnej z nich uywany, jest vi Po zakoczeniu edycji,
wysyane edytowane polecenia s wywietlane przez echo i
wykonywane.
W drugiej postaci, polecenie jest ponownie wykonywane po
kadej wymianie wystpienia wzorca przez zastpienie. Przy-
datnym 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 zostaa pierwsza posta, to wartoci zwracan jest
0, chyba e napotkano nieprawidow opcj lub pierwszy albo
ostatni okrelaj wiersze historii spoza zakresu. Jeeli
podano opcj -e, wartoci zwracan jest warto ostatniego
wykonanego polecenia lub niepowodzenie jeli pojawi si bd
tymczasowego pliku polece. Jeeli uyta zostaa druga
posta, to zwracanym kodem jest kod ponownie wykonanego
polecenia, chyba e polecenie nie okrela poprawnego wier-
sza polece -- wwczas 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 powoki. Wartoci zwracan jest warto
polecenia umieszczonego na pierwszym planie, lub poraka
jeeli fb uruchomiono przy wyczonej kontroli zada, lub
uruchomiono je przy wczonej kontroli zada, ale zadanie
nie okrela prawidowego zadania lub zadanie okrela
zadanie, ktre zostao uruchomione bez kontroli zada.
getopts acuch_opcji nazwa [argumenty]
getopts uywane jest przez procedury powoki do analizy
parametrw pozycyjnych. acuch opcji zawiera znaki opcji,
jakie maj by rozpoznawane; jeeli po znaku wystpuje
dwukropek, to oczekuje si, e opcja bdzie posiada
argument, ktry powinien by od niej oddzielony biaym
znakiem. Jako znaki opcji mog wystpi dwukropek i znak
zapytania. Przy kadym wywoaniu getopts umieszcza nastpn
opcj w zmiennej powoki nazwa, inicjujc nazw jeli nie ist-
niaa. Indeks nastpnego argumentu do przetwarzania
umieszczany jest w zmiennej OPTIND. OPTIND inicjowany
jest na 1 za kadym razem, gdy wywoywana jest powoka lub
skrypt powoki. Gdy opcja wymaga argumentu, getopts
umieszcza go w zmiennej OPTARG. Powoka nie resetuje
OPTIND automatycznie; musi by on resetowany rcznie
pomidzy wielokrotnymi odwoaniami do getopts w tym samym
wywoaniu powoki, jeli uywany ma by nowy zestaw parametrw.
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 argumentw, to getopts
przetwarza je zamiast parametrw pozycyjnych.
getopts moe zgasza bdy na dwa sposoby. Jeeli pierwszym
znakiem acucha opcji jest dwukropek, to stosowane jest
ciche (silent) zgaszanie bdw. Przy zwykej pracy komu-
nikaty diagnostyczne wypisywane s przy napotkaniu
nieprawidowych opcji lub brakujcych argumentw opcji.
Jeeli zmienna OPTERR ustawiona jest na 0, nie bd wywiet-
lane adne komunikaty bdw, nawet jeli pierwszym znakiem
acucha opcji nie jest dwukropek.
Przy napotkaniu nieprawidowej opcji getopts umieszcza ? w
nazwie i, jeli nie pracuje w trybie cichym, wypisuje
komunikat bdu i kasuje OPTARG. Jeeli getopts pracuje w
trybie cichym, to znaleziony znak opcji umieszczany jest
w OPTARG i nie jest wypisywany aden komunikat diagnosty-
czny.
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 bdu. Jeeli getopts pracuje w trybie cichym, to
w nazwie umieszczany jest dwukropek (:), a OPTARG ustaw-
iane jest na znaleziony znak opcji.
getopts zwraca prawd, jeli znaleziono okrelon lub nie
okrelon opcj. Zwraca fasz jeeli napotkano koniec opcji
lub pojawi si bd.
hash [-r] [-p plik] [-t] [nazwa]
Dla kadej nazwy okrelana i zapamitywana jest pena nazwa
plikowa polecenia wyszukanego w katalogach $PATH . Jeeli
podano opcj -p, nie jest wykonywane przeszukanie cieki, a
plik uywane jest jako pena nazwa pliku polecenia. Opcja
-r powoduje, e powoka zapomina wszystkie zapamitane wcze-
niej miejsca. Jeli podano opcj -t, to wypisywana jest
odpowiadajca nazwie pena nazwa pliku. Jeeli przy wicej
ni jednym argumencie nazwy podano -t, to przed kad prze-
chowywan pen nazw wypisywana jest nazwa. Jeeli nie
podano adnych argumentw, to wypisywana jest informacja o
zapamitanych poleceniach. Kodem zwracanym jest prawda,
chyba e nie odnaleziono nazwy lub podano nieprawidow
opcj.
help [-s] [wzorzec]
Wywietla pomocne informacje o poleceniach wbudowanych.
Jeeli podano wzorzec, to help daje szczegow pomoc dotyczc
wszystkich polece pasujcych do wzorca; w przeciwnym razie
wypisywana jest pomoc dla wszystkich polece wbudowanych i
struktur sterujcych powoki. Opcja -s ogranicza wywietlan
informacj do krtkiego opisu skadni. 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 * zostay 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 doczone
do pliku historii od chwili rozpoczcia biecej
sesji pracy bash.
-r Czyta zawarto pliku historii i posuguje si ni jako
biec list historii.
-w Zapisuje biec list do pliku historii, nadpisujc
jego zawarto.
-p Na zadanych argumentach wykonuje podstawianie his-
torii (history substitution). Wywietla wyniki na
standardowym wyjciu. Nie zachowuje wynikw na
licie. Kady z argumentw musi by cytowany, by
wyczy normaln interpretacj historii.
-s Zachowuje argumenty na licie historii jako poje-
dyncz pozycj. Przed dodaniem argumentw z listy
usuwane jest ostatnie polecenie.
Wartoci zwracan jest 0, chyba e napotkano nieprawidow
opcj lub podczas odczytu czy zapisu pliku historii pojawi
si bd, podano niepoprawny argument offset opcji -d, lub
nie powioda si interpretacja historii podanej jako argu-
ment -p.
jobs [-lnprs] [ zadanie ... ]
jobs -x polecenie [ argumenty ... ]
Pierwsza posta podaje aktywne zadania. Opcje maj nastpu-
jce znaczenie:
-l Oprcz zwykej informacji podaje identyfikatory pro-
cesw.
-p Listuje tylko ID procesu lidera grupy procesw
zadania.
-n Wywietla wycznie informacj o zadaniach, ktre
zmieniy status od chwili, gdy uytkownik by ostat-
nio 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
nieprawidow opcj lub podano nieprawidowe zadanie.
Jeeli podano opcj -x, to jobs zastpuje wszelkie zadania
znalezione w poleceniu lub argumentach odpowiednim ID
grupy procesw, wykonuje polecenie przesyajc mu argumenty,
i zwraca jego kod zakoczenia.
kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
kill -l [sigspec | exit_status]
Wysya sygnay okrelony przez sigspec lub signum do procesu
okrelonego przez pid lub jobspec. sigspec jest albo nazw
sygnau, jak np. SIGKILL albo numerem sygnau; signum jest
numerem sygnau. Jeeli sigspec jest nazw sygnau, to moe
ona zosta podana z przedrostkiem SIG lub bez niego. Jeli
nie podano sigspec, to przyjmuje si SIGTERM. Opcja -l
listuje nazwy sygnaw. Jeeli przy podanym -l uyto jakich
argumentw, to listowane s sygnay odpowiadajce tym argu-
mentom, a kodem zwracanym jest 0. Argument exit_status
opcji -l jest liczb okrelajc numer sygnau lub kod
zakoczenia procesu przerwanego przez sygna. kill zwraca
prawd, jeli przynajmniej jeden z sygnaw zosta pomylnie
przesany, lub fasz, jeli pojawi si bd lub napotkano
niepoprawn opcj.
let arg [arg ...]
Kady argument jest wyraeniem arytmetycznym, jakie ma
zosta zinterpretowane (zobacz OBLICZANIE WYRAE ARYTMETY-
CZNYCH). 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
potomkw. Bez operandw, local wysya list zmiennych
lokalnych na standardowe wyjcie. Bdem jest uycie local
poza funkcj. Zwracany jest kod 0, chyba e local zostanie
uyte poza funkcj lub podano nieprawidow nazw, albo nazwa
jest zmienn tylko do odczytu.
logout Koczy prac powoki zgoszeniowej.
popd [-n] [+n] [-n]
Usuwa pozycje ze stosu katalogw. Bez argumentw, usuwa
katalog z wierzchoka stosu i wykonuje cd do nowego kata-
logu na wierzchoku. Argumenty, jeli wystpuj, maj nastpu-
jce znaczenie:
+n Usuwa nt pozycj, liczc od lewej, listy pokazywanej
przez dirs, zaczynajc od zera. Na przykad ,,popd
+0'' usuwa pierwszy katalog, a ,,popd +1'' drugi.
-n Usuwa nt pozycj, liczc od prawej, listy pokazy-
wanej przez dirs, zaczynajc od zera. Na przykad
,,popd -0'' usuwa ostatni katalog, ,,popd -1''
przedostatni.
-n Nie wykonuje zwykej zmiany katalogu podczas usuwa-
nia katalogw ze stosu, tak e zmieniana jest tylko
zawarto stosu.
Jeeli polecenie popd powiedzie si, to wykonywane jest
rwnie dirs, a kodem zwracanym jest 0. popd zwraca fasz
jeli napotkano nieprawidow opcj, stos katalogw jest
pusty, podano nieistniejc pozycj stosu lub nie udaa si
zmiana katalogu.
printf format [argumenty]
Zapisuje sformatowane argumenty na standardowe wyjcie
przy pomocy zadanego formatu. format jest acuchem
znakowym zawierajcym trzy rodzaje obiektw: zwyke znaki,
ktre s po prostu kopiowane na standardowe wyjcie, sek-
wencje specjalne, ktre s konwertowane i kopiowane na
standardowe wyjcie, i specyfikacje formatu, z ktrych kada
powoduje wypisanie nastpnego kolejnego argumentu. Oprcz
standardowych formatw printf(1), %b powoduje, e printf
interpretuje sekwencje specjalne w odpowiednim argumen-
cie, za %q powoduje, e printf wysya odpowiedni argument w
formacie, jaki moe by ponownie wykorzystany jako wejcie
powoki.
W razie potrzeby format wykorzystywany jest ponownie, a
do obsuenia wszystkich argumentw. Jeeli format wymaga
wikszej iloci argumentw ni podano, to dodatkowe specy-
fikacje formatu zachowuj si tak, jakby dostarczono im
odpowiednio warto zerow lub acuch pusty. Zwracana jest
warto zero w przypadku powodzenia, niezerowa przy porace.
pushd [-n] [katalog]
pushd [-n] [+n] [-n]
Dodaje katalog na wierzchoek stosu katalogw, albo obraca
stos, czynic nowy wierzchoek stosu biecym katalogiem
roboczym. Bez argumentw, zamienia miejscami dwa najwysze
katalogi stosu [wierzchoek i nastpny] i zwraca 0, chyba e
stos jest pusty. Argumenty, jeli je podano, maj nastpu-
jce znaczenie:
+n Obraca stos, tak e nty katalog (liczc od lewej
listy pokazywanej przez dirs, poczynajc od zera)
staje si wierzchokiem.
-n Obraca stos, tak e nty katalog (liczc od prawej
listy pokazywanej przez dirs, poczynajc od zera)
staje si wierzchokiem.
-n Nie wykonuje zwykej zmiany katalogu podczas
dodawania katalogw do stosu, tak e zmieniany jest
tylko stos.
katalog
Odkada katalog na wierzchoek stosu, czynic go
nowym biecym katalogiem roboczym.
Jeeli polecenie pushd powiodo si, to wykonywane jest
rwnie dirs. Jeeli uywana jest pierwsza posta pushd, to
zwracane jest 0, chyba e nie udao si cd na katalog. Przy
drugiej postaci, pushd zwraca 0, chyba e stos katalogw
jest pusty, podano nieistniejcy element stosu lub nie
powioda 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 wczona 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 bd lub podano nieprawidow
opcj.
read [-ers] [-t timeout] [-a anazwa] [-p zachta] [-n nznak] [-d
sep] [nazwa ...]
Ze standardowego wejcia czytany jest pojedynczy wiersz, a
jego pierwsze sowo jest przypisywane do pierwszej nazwy,
drugie sowo do drugiej nazwy i tak dalej, przy czym
pozostae na koniec sowa i rozdzielajce je separatory
przypisane zostan do ostatniej nazwy. Jeeli ze standard-
owego wejcia przeczytano mniej sw ni podanych zostao
nazw, to pozostaym nazwom przypisywane s puste wartoci.
Do podziau wiersza na sowa wykorzystywane s znaki z IFS.
Znaku odwrotnego ukonika (\) mona uy do usunicia specjal-
nego znaczenia nastpnego czytanego znaku oraz do
oznaczenia kontynuacji wiersza. Opcje, jeli je podano,
maj nastpujce znaczenie:
-a anazwa
Sowa s przypisywane do kolejnych indeksw zmiennej
tablicowej anazwa, poczynajc od 0. anazwa jest
kasowana przed przypisaniem nowych wartoci. Inne
argumenty nazwa s ignorowane.
-d sep Pierwszy znak sep suy do zakoczenia wiersza wej-
cia, 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 znakw, zamiast
czeka na cay wiersz wejcia.
-p zachta
Wywietla zacht (prompt) na standardowym wyjciu
bdw, bez koczcego znaku nowej linii, przed prb
odczytu wejcia. Zachta wywietlana jest tylko jeli
wejcie pochodzi z terminala.
-r Odwrotny ukonik nie dziaa jako znak specjalny.
Traktowany jest jako cz wiersza. W szczeglnoci,
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 peny
wiersz wejcia. Opcja ta nie dziaa, jeeli odczyt
nie jest prowadzony z terminala lub potoku.
Jeli nie podano adnych nazw, odczytany wiersz przypisy-
wany jest zmiennej REPLY. Zwracany kod wynosi 0, chyba e
napotkano koniec pliku lub read przekroczy czas oczekiwa-
nia.
readonly [-apf] [nazwa ...]
Podane nazwy oznaczane s jako readonly; wartoci tych nazw
nie mog by zmieniane nastpujcymi pniej przypisaniami.
Jeli podano opcj -f, oznaczane s funkcje o nazwach
odpowiadajcych nazwom. Opcja -a ogranicza zmienne do
tablic. Jeli nie podano argumentw nazw lub jeli podano
opcj -p, wypisywane jest zestawienie wszystkich nazw o
atrybucie readonly. Opcja -p powoduje, e wyniki bd wywi-
etlane w formacie, ktry moe by ponownie wykorzystany jako
wejcie. Zwracany jest kod rwny 0, chyba e napotkano
nieprawidow opcj, jedna z nazw nie jest poprawn nazw zmi-
ennej powoki lub podano -f z nazw, ktra 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 powok i zwrcenie albo n
albo kodu zakoczenia ostatniego wykonanego w skrypcie
polecenia. Jeeli zostanie uyte poza funkcj i nie podczas
wykonywania skryptu przez ., zwracany jest fasz.
set [--abefhkmnptuvxBCHP] [-o opcja] [arg ...]
Bez opcji, wywietlane s nazwa i warto kadej ze zmiennych
powoki, w formacie ktry moe by ponownie wykorzystany jako
wejcie. Wyniki s sortowane zgodnie z biecymi ustawieni-
ami locale. Gdy podane s opcje, ustawiaj one lub kasuj
atrybuty powoki. Argumenty pozostae po przetworzeniu
opcji traktowane s jako wartoci parametrw 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 drugo-
planowych, zamiast czyni to przed nastpn podsta-
wow zacht. Dziaa tylko jeli wczona jest kontrola
zada.
-e Zakocz natychmiast jeli polecenie proste (zobacz
GRAMATYKA POWOKI powyej) koczy prac z kodem
niezerowym. Powoka nie koczy pracy, jeli polece-
nie, ktre si nie powiodo jest czci ptli until lub
while, czci instrukcji if, czci listy && lub ||
lub warto zwrcona przez polecenie zostaa odwrcona
przez !. Przed zakoczeniem pracy powoki wykony-
wana jest puapka na sygna ERR, jeli bya ustaw-
iona.
-f Wycza rozwijanie nazw plikw.
-h Zapamituje pooenie polece przy wyszukiwania ich
do wykonania. Domylnie wczone.
-k Wszystkie argumenty wystpujce w postaci
instrukcji przypisania umieszczane s w rodowisku
polecenia, nie za tylko te, ktre poprzedzaj nazw
polecenia.
-m Tryb monitorowania. Wczona jest kontrola zada.
Opcja ta jest domylnie wczona dla powok interak-
tywnych na systemach j obsugujcych (zobacz
STEROWANIE ZADANIAMI powyej). Procesy drugo-
planowe dziaaj w odrbnej grupie procesw a po ich
zakoczeniu wypisywany jest wiersz zawierajcy ich
kod zakoczenia.
-n Odczytuje polecenia, ale nie ich nie wykonuje.
Moe by wykorzystane do sprawdzenia bdw skadni w
skrypcie powoki. Ignorowane przez powoki interak-
tywne.
-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. Wczone domylnie, jeli
powoka jest interaktywna, chyba e zostaa
uruchomiona z opcj --noediting.
errexit To samo, co -e.
hashall To samo, co -h.
histexpand
To samo, co -H.
history Wcza histori polece, jak opisano powyej w
sekcji HISTORII. Opcja ta jest domylnie
wczona w powokach interaktywnych.
ignoreeof
Efekt jest taki, jakby zostao wykonane
polecenie powoki ,,IGNOREEOF=10'' (zobacz
powyej Zmienne powoki).
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 dziaanie rni si od standardu
POSIX 1003.2, tak by spenia 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 Wcza tryb uprzywilejowany (privileged). W tym
trybie pliki $ENV i $BASH_ENV nie s przetwarzane,
funkcje powoki nie s dziedziczone ze rodowiska, a
zmienna SHELLOPTS, jeli wystpuje w rodowisku,
jest ignorowana. Jeli powoka zostaa uruchomiona
z efektywnym id uytkownika (grupy) rnych od id
rzeczywistego a nie podano opcji -p, to podej-
mowane 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. Wyczenie 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 parametrw traktuje
nieustawione zmienne jako bd. Jeeli wykonywana
jest prba interpretacji nieustawionej zmiennej,
to powoka wypisuje komunikat o bdzie i, jeli nie
jest interaktywna, koczy prac z niezerowym kodem.
-v Wypisuje wiersze wejciowe powoki przy ich odczy-
tywaniu.
-x Po interpretacji kadego polecenia prostego, wywi-
etla zinterpretowan warto PS4, po ktrej nastpuje
polecenie i jego zinterpretowane argumenty.
-B Powoka wykonuje interpretacj nawiasw (zobacz
Interpretacja nawiasw powyej). Domylnie wczone.
-C Jeli wczone, bash nie nadpisuje istniejcego pliku
przy uyciu operatorw przekierowania >, >& i <>.
Mona to omin tworzc pliki wyjciowe przy uyciu
operatora przekierowania >| zamiast >.
-H Wcza zastpowanie historii w stylu !. Opcja ta
jest domylnie wczona dla powoki interaktywnej.
-P Jeeli jest ustawiona, to powoka nie poda za dow-
izaniami symbolicznymi podczas wykonywania polece
zmieniajcych biecy katalog roboczy, jak cd. Uywa
zamiast tego fizycznej struktury katalogw. Domyl-
nie, bash poda za logicznym acuchem katalogw pod-
czas wykonywania polece zmieniajcych biecy kata-
log roboczy.
-- Jeeli po tej opcji nie wystpuj adne argumenty, to
parametry pozycyjne s kasowane. W przeciwnym
razie, parametry pozycyjne ustawiane s na argu-
menty, nawet jeli niektre z nich zaczynaj si od
znaku -.
- Sygnalizuje koniec opcji, powodujc przypisanie
wszystkich pozostaych argumentw do parametrw
pozycyjnych. Opcje -x i -v s wyczane. Jeeli nie
ma argumentw, to parametry pozycyjne pozostaj bez
zmian.
Opcje s domylnie wyczone, chyba e wskazano inaczej.
Uycie + zamiast - spowoduje, e opcje te zostan wyczone.
Opcje mog take zosta okrelone jako argumenty wywoania
powoki. Biecy zestaw opcji mona znale w $-. Zwracanym
kodem jest zawsze prawda, chyba e napotkano nieprawidow
opcj.
shift [n]
Parametrom pozycyjne od n+1 ... zmieniaj nazwy $1 ....
parametry reprezentowane przez liczby $# w d do $#-n+1 s
usuwane. n musi by liczb nieujemn mniejsz lub rwn $#.
Jeeli n wynosi 0, parametry nie s zmieniane. Jeeli nie
podano n, zakada 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 ...]
Przecza wartoci zmiennych sterujcych opcjonalnym
zachowaniem powoki. 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. Pozostae
opcje maj nastpujce znaczenie:
-s Wcz (ustaw) kad nazw_opcji.
-u Wycz (usu) kad nazw_opcji.
-q Zaniechaj zwykego wywietlania (tryb cichy);
zwracany kod wskazuje na to czy nazwa_opcji jest
ustawiona czy nie ustawiona. Jeeli z -q podano
wiele argumentw nazw_opcji, to zwracanym kodem
jest zero, gdy wszystkie nazwy_opcji s wczone; w
przeciwnym razie kod jest niezerowy.
-o Ogranicza wartoci nazwy_opcji do wartoci zdefin-
iowanych dla opcji -o wbudowanego polecenia set.
Jeeli uyto albo -s albo -u bez argumentw nazw_opcji,
wywietlanie ogranicza si do tych opcji, ktre, odpowied-
nio, s ustawione bd nieustawione. Jeeli nie wskazano
inaczej, opcje shopt s domylnie wyczone (nie ustawione).
Przy listowaniu opcji zwracany jest kod zerowy jeli
wszystkie nazwy_opcji s wczone, niezerowy w przeciwnym
wypadku. Przy ustawianiu lub kasowaniu opcji zwracany
jest zerowy kod, chyba e nazwa_opcji nie jest poprawn
opcj powoki.
Lista opcji shopt obejmuje:
cdable_vars
Jeli jest ustawiona, to nie bdcy katalogiem argu-
ment wbudowanego polecenia cd uwaany jest za nazw
zmiennej; wartoci tej zmiennej jest katalog, na
ktry ma nastpi zmiana.
cdspell Jeli jest ustawiona, to pomniejsze bdy w pisowni
skadowej katalogu w poleceniu cd bd poprawiane.
Sprawdzenie takich bdw obejmuje znaki zamienione
miejscami, znaki pominite i pojedyncze zbdne
znaki. Jeeli znaleziono poprawk, wypisywana jest
poprawna nazwa pliku a polecenie kontynuuje dzi-
aanie. Opcja ta jest wykorzystywana tylko przez
powoki interaktywne.
checkhash
Jeli jest ustawiona, bash sprawdza przed prb
wykonania polecenia znalezionego w tablicy
mieszajcej, czy polecenie to istnieje. Jeeli ju
nie istnieje, to wykonywane jest zwyke przeszuki-
wanie 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 usiuje zapisa wszys-
tkie wiersze polecenia wielowierszowego w tej
samej pozycji historii. Pozwala to na atw ponown
edycj polece obejmujcych wiele wierszy.
dotglob Jeeli jest ustawione, to bash do wynikw rozwini-
cia nazw plikw wcza take nazwy plikw rozpoczyna-
jce si kropk `.'.
execfail
Jeeli jest ustawione, to powoka nie-interaktywna
nie zakoczy pracy nie mogc wykona pliku
okrelonego jako argument wbudowanego polecenia
exec. Powoka interaktywna nie koczy pracy, jeli
exec zawiedzie.
expand_aliases
Jeeli jest ustawiona, aliasy s interpretowane jak
opisano powyej w ALIASY. Opcja ta jest wczona
domylnie dla powok interaktywnych.
extglob Jeli jest wczona, wczane s rozszerzone funkcje
dopasowywania wzorcw opisane powyej w Rozwijanie
nazw plikw.
histappend
Jeeli jest ustawiona, to do pliku o nazwie
wskazanej zmienn HISTFILE podczas koczenia pracy
przez powok 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
przesyane do analizatora powoki. Zamiast tego,
wiersz wynikowy adowany jest do bufora edycyjnego
readline, pozwalajc na dalsze zmiany.
hostcomplete
Jeeli jest ustawione, a uywane jest readline,
bash bdzie usiowa wykona uzupenianie nazwy hosta
podczas uzupeniania sowa zawierajcego @ (zobacz
Uzupenianie w READLINE powyej). Domylnie wczone.
huponexit
Jeeli jest ustawione, to bash wyle SIGHUP do
wszystkich zada podczas koczenia pracy interakty-
wnej powoki zgoszeniowej.
interactive_comments
Jeli jest wczone, pozwala by sowo rozpoczynajce
si od # powodowao pominicie tego sowa i wszyst-
kich pozostaych znakw wiersza w powoce interakty-
wnej (zobacz powyej KOMENTARZE). Opcja domylnie
wczona.
lithist Jeli jest ustawione, a wczona jest opcja cmdhist,
to polecenia wielowierszowe zachowywane s w his-
torii w miar moliwoci z osadzonymi znakami nowej
linii zamiast przy uyciu rednikw jako separatorw.
login_shell
Powoka ustawia t opcj jeli zostanie uruchomiona
jako zgoszeniowa (zobacz WYWOANIE powyej). Ta
warto nie moe by zmieniona.
mailwarn
Jeeli jest ustawione, za do pliku, w ktrym
sprawdza poczt bash sigano od czasu ostatniego
sprawdzania, to zostanie wywietlony komunikat
,,The mail in plikpoczty has been read'' (Poczta
w plikpoczty zostaa przeczytana).
no_empty_cmd_completion
Jeli jest ustawione, i stosowane jest readline,
to bash nie bdzie usiowa szuka w PATH moliwych
uzupenie, gdy prba uzupeniania wystpi w pustym
wierszu.
nocaseglob
Jeli zostao ustawione, to bash przy rozwijaniu
nazw plikw dopasowuje je nie zwracajc uwagi na
wielko liter (zobacz Rozwijanie nazw plikw
powyej).
nullglob
Jeli jest ustawione, to, bash pozwala by wzorce
nie dopasowujce adnych plikw (zobacz Rozwijanie
nazw plikw powyej) rozwijay si w acuch pusty,
zamiast na same siebie.
progcomp
Jeeli jest ustawione, to wczone s usugi pro-
gramowalnego uzupeniania (zobacz powyej Pro-
gramowalne uzupenianie). Domylnie wczone.
promptvars
Jeeli jest ustawione, to acuchy zachty podlegaj
interpretacji zmiennych i podstawianiu parametrw
po interpretacji zachty opisanej w ZACHTA powyej.
Opcja ta jest domylnie wczona.
restricted_shell
Powoka ustawia t opcj jeli zostaa uruchomiona w
trybie okrojonym (zobacz POWOKA OKROJONA poniej).
Warto ta nie moe by zmieniona. Nie jest ona
resetowana podczas odczytu plikw startowych,
pozwalajc im na odkrycie czy powoka jest okrojona
czy nie.
shift_verbose
Jeeli jest ustawiona, to wbudowane shift wypisuje
komunikat o bdzie gdy liczba przesuni (przez
shift) przekracza liczb parametrw pozycyjnych.
sourcepath
Jeli jest ustawiona, to polecenie wbudowane
source (.) posuguje si wartoci PATH do
znalezienia katalogu zawierajcego plik podany
jako argument. Opcja domylnie wczona.
xpg_echo
Jeeli jest ustawiona, to dla wbudowanego polece-
nia echo wczane jest domylne interpretowanie
sekwencji specjalnych z odwrotnym ukonikiem.
suspend [-f]
Zawiesza wykonywanie tej powoki do otrzymania przez ni
sygnau SIGCONT. Opcja -f mwi, by nie narzeka, jeli uyto
suspend w powoce zgoszeniowej; po prostu zawiesi mimo to.
Kodem zwracanym jest 0, chyba e powoka jest powok
zgoszeniow i nie podano opcji -f, lub gdy nie jest wczona
kontrola zada.
test wyra
[ wyra ]
Zwraca kod 0 lub 1 w zalenoci od interpretacji wyraenia
warunkowego wyra. kady operator i operand musi by odrb-
nym argumentem. Wyraenia skadajc si ze skadowych
opisanych powyej w WYRAENIA WARUNKOWE.
Wyraenia mog by czone przy uyciu poniszych operatorw,
podanych w kolejnoci malejcego priorytetu.
! wyra Prawda jeli wyra jest faszem.
( wyra )
Zwraca warto wyra. Moe by stosowane do obejcia
zwykej kolejnoci operatorw.
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 posugujc si
zestawem regu opartych o liczb argumentw.
0 argumentw
Wyraenie jest faszywe.
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 operatorw 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 fasz.
3 argumenty
jeeli drugi argument jest jednym z dwuargumen-
towych operatorw warunkowych podanych powyej w
WYRAENIA WARUNKOWE, to wynik wyraenia jest
wynikiem dwuargumentowego testu z zastosowaniem
pierwszego i trzeciego argumentu jako operandw.
Jeli pierwszym argumentem jest !, to warto stanowi
negacj testu dwuargumentowego przy uyciu drugiego
i trzeciego argumentu. Jeli pierwszym argumentem
jest dokadnie ( a trzecim argumentem dokadnie ),
to wynik jest jednoargumentowym testem drugiego
argumentu. W pozostaych przypadkach wyraenie jest
faszywe. Operatory -a i -o w tym przypadku uwaane
s za dwuargumentowe.
4 argumenty
Jeli pierwszym argumentem jest !, to wynik jest
negacj trjargumentowego wyraenia zoonego z
pozostaych argumentw. W przeciwnym wypadku,
wyraenie jest poddawanie analizie skadni i inter-
pretowane zgodnie z priorytetami przy zastosowaniu
regu podanych powyej.
5 lub wicej argumentw
Wyraenie jest poddawanie analizie skadni i inter-
pretowane zgodnie z priorytetami przy zastosowaniu
regu podanych powyej.
times Wypisuje sumaryczne czasy uytkownika i systemu dla powoki
i procesw z niej uruchomionych. Kodem zwracanym jest 0.
trap [-lp] [argument] [sigspec ...]
Polecenie argument ma zosta odczytane i wykonane, gdy
powoka otrzyma sygna(y) sigspec. Jeli nie wystpuje argu-
ment lub jest to -, to wszystkie podane sygnay resetowane
s do swych wartoci pierwotnych (wartoci, jakie miay przy
wejciu do powoki). Jeeli argument jest acuchem pustym,
to sygna okrelony przez kade sigspec jest ignorowany
przez powok i polecenia, jakie ona wywouje. Jeeli nie
wystpi argumentu a podano -p, wywietlane s polecenia
zwizane z przechwyceniem kadego z sygnaw sigspec. Jeeli
nie podano adnych argumentw lub jeli podano tylko -p, to
trap wypisuje list polece zwizanych z kadym z numerw syg-
naw. Kade sigspec jest albo nazw sygnau zdefiniowan w
<signal.h albo numerem sygnau. Jeeli sigspec jest syg-
naem EXIT (0), to polecenie argument wykonywane jest przy
koczeniu pracy przez powok. Jeeli sigspec jest rwne
DEBUG, to polecenie argument wykonywane jest po kadym
poleceniu prostym (zobacz GRAMATYKA POWOKI powyej). Jeli
sigspec to ERR, wwczas polecenie argument wykonywane jest
kadorazowo gdy polecenie proste zwrci niezerowy kod
zakoczenia. Puapka zastawiona na ERR nie jest wykonywana
gdy polecenie, ktre zakoczyo 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 powoka wyp-
isuje zestawienie nazw sygnaw i odpowiadajcych im numerw.
Sygnay ignorowane przy wejciu do powoki nie mog by
przechwycone ani zresetowane. W procesie potomnym, pod-
czas jego tworzenia, sygnay przechwycone resetowane s do
swych wartoci pierwotnych. Zwracanym kodem jest fasz
jeli ktrykolwiek z sigspec jest nieprawidowy; w przeci-
wnym 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 acuch bdcy jednym z
alias, keyword, function, builtin lub file, jeli nazwa
jest odpowiednio aliasem, zastrzeonym sowem powoki,
funkcj, poleceniem wbudowanym lub plikiem dyskowym. Jeli
nie znaleziono nazwy, to nie jest wypisywane nic i jako
kod zakoczenia zwracany jest fasz. Jeli posuono si opcj
-p to type zwraca albo nazw pliku dyskowego, ktry zostaby
wykonany jeli nazwa zostaaby podana jako nazwa polecenia,
albo nic jeli ! .if t type -t nazwa ! .if n ,,type -t
nazwa'' nie zwrcioby file. Jeli polecenie istnieje w
tablicy mieszajcej, -p wypisuje warto z tablicy,
niekoniecznie plik, ktry 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 rwnie opcji -p.
Przy uyciu -a nie korzysta si z tablicy mieszajcej
polece. type zwraca prawd jeli znaleziono jakie jego
argumenty, fasz jeli nie znaleziono adnych.
ulimit [-SHacdflmnpstuv [limit]]
Zapewnia kontrol nad zasobami dostpnymi powoce i procesw
jakie ona uruchamia, na systemach umoliwiajcych tak kon-
trol. Opcje -H i -S okrelaj, e dla danego zasobu ustaw-
iane 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 zarwno 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 nastpu-
jco:
-a Podawane s wszystkie biece ograniczenia
-c Maksymalny rozmiar tworzonych plikw core
-d Maksymalny rozmiar segmentu danych procesu
-f Maksymalny rozmiar plikw tworzonych przez powok
-l Maksymalny rozmiar, jaki moe zosta zablokowany w
pamici
-m Maksymalny rozmiar czci rezydentnej
-n Maksymalna liczba otwartych deskryptorw pliku
(wikszo systemw 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 procesw dostpnych dla poje-
dynczego uytkownika
-v Maksymalna wielko pamici wirtualnej dostpna dla
powoki
Jeeli podano limit, to staje si now wartoci ograniczenia
zadanego zasobu (opcja -a tylko wywietla). Jeeli nie
podano adnej ocpji, to zakada si opcj -f. Wartoci
podawane s przyrostowo co 1024-bajty, z wyjtkiem -t,
podawanego w sekundach, -p, w jednostkach 512-bajtowych
blokw, oraz -n i -u, bdcych wartociami bez miana.
Zwracanym kodem jest 0, chyba e podano nieprawidow opcj
lub argument albo podczas ustawiania nowego ograniczenia
wystpi bd.
umask [-p] [-S] [tryb]
Maska praw dostpu dla plikw tworzonych przez uytkownika
ustawiana jest na tryb. Jeeli tryb rozpoczyna si od
cyfry, jest interpretowany jako liczba semkowa; w przeci-
wnym razie interpretowany jest jako maska w trybie sym-
bolicznym, 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
semkowej. Jeeli podano opcj -p i pominito tryb, to wyj-
cie ma posta, ktra moe by powtrnie wykorzystana jako wej-
cie. Kodem zwracanym jest 0 jeli pomylnie zmieniono tryb
lub nie podano argumentu tryb, za fasz w pozostaych sytu-
acjach.
unalias [-a] [nazwa ...]
Usuwa kad z nazw z listy zdefiniowanych aliasw. Jeeli
podano -a, to usuwane s definicje wszystkich aliasw.
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 powoki. Zmienne read-only
nie mog by kasowane. Jeeli podano -f, to kada z nazw
wskazuje na funkcj powoki, a definicja funkcji jest
usuwana. Kada z usunitych zmiennych lub funkcji usuwana
jest ze rodowiska przesyanego nastpnym poleceniom. Jeli
usunita zostanie ktra ze zmiennych RANDOM, SECONDS,
LINENO, HISTCMD, FUNCNAME, GROUPS, lub DIRSTACK, to traci
ona swe specjalne waciwoci, 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 pozostaych przypadkach zwracany jest kod
zakoczenia ostatniego procesu lub zadania na jakie
czekano.
Jeli bash uruchomiony jest pod nazw rbash, lub przy jego wywoa-
niu posuono si opcj -r, to staje si powok okrojon (restricted).
Powoka okrojona suy do ustawienia rodowiska lepiej kon-
trolowanego ni powoka standardowa. Zachowuje si ona identycznie
jak bash z wyjtkiem tego, e ponisze nie s dozwolone lub nie s
wykonywane:
+o zmiana katalogw przy pomocy cd
+o ustawianie lub kasowanie wartoci SHELL, PATH, ENV lub
BASH_ENV
+o podawanie nazw polece zawierajcych /
+o podawanie nazw plikw zawierajcych / jako argumentu wbu-
dowanego polecenia . (kropka).
+o importowanie definicji funkcji ze rodowiska powoki przy
uruchamianiu
+o analiza wartoci SHELLOPTS ze rodowiska powoki przy
uruchamianiu
+o przekierowywanie wyjcia przy pomocy operatorw >, >|, <>,
>&, &> i >>
+o posugiwanie si wbudowanym poleceniem exec w celu zastpi-
enia powoki innym poleceniem
+o dodawanie lub usuwanie polece przy pomocy opcji -f i -d
wbudowanego polecenia enable
+o podawanie opcji -p wbudowanego polecenia command
+o wyczanie trybu okrojonego za pomoc set +r lub set +o
restricted.
Powysze ograniczenia wymuszane s po przeczytaniu plikw uru-
chomieniowych.
Jeli polecenie do wykonania okazuje si by skryptem powoki
(zobacz WYKONYWANIE POLECE powyej), to rbash wycza wszelkie
ograniczenia w powoce zrodzonej do wykonania skryptu.
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)
/bin/bash
Plik wykonywalny powoki bash
/etc/profile
Oglnosystemowy plik inicjujcy, wykonywany dla powok
zgoszeniowych
~/.bash_profile
Osobisty plik inicjujcy, wykonywany dla powok
zgoszeniowych
~/.bashrc
Indywidualny plik startowy dla powoki trybu interakty-
wnego
~/.bash_logout
Indywidualny plik porzdkujcy dla powoki zgoszeniowej,
wykonywany podczas koczenia przez ni pracy
~/.inputrc
Indywidualny plik inicjujcy dla readline
Brian Fox, Free Software Foundation
bfox [AT] gnu.Edu
Chet Ramey, Case Western Reserve University
chet [AT] ins.Edu
Jeli znajdziesz w bash bd, powiniene go zgosi. Ale najpierw
powiniene upewni si, e rzeczywicie jest to bd i e pojawia si w
najwieszej wersji bash jak masz.
Po ustaleniu, e bd faktycznie istnieje, uyj polecenia bashbug do
wysania zgoszenia bdu. Jeli masz poprawk usuwajc problem, zach-
camy do przesania jej rwnie! Sugestie i `filozoficzne'
zgoszenia bdw mog by przesyane [w jzyku angielskim] do bug-
bash [AT] gnu.org lub wysyane na grup dyskusyjn gnu.bash.bug.
WSZYSTKIE zgoszenia bdw powinny zawiera:
Numer wersji bash
Sprzt i system operacyjny
Uyty kompilator
Opis bdnego zachowania
Krtki skrypt lub przepis na uzyskanie bdu
bashbug wstawia pierwsze trzy pozycje automatycznie do szablonu
jaki udostpnia w celu wypenienia zgoszenia bdw.
Komentarze i zgoszenia bdw dotyczce tej strony podrcznika [ory-
ginau] powinny by kierowane na adres chet [AT] ins.Edu.
Jest za duy i zbyt wolny.
Istnieje troch subtelnych rnic pomidzy bash a tradycyjnymi wers-
jami sh, gwnie z powodu specyfikacji POSIX.
Aliasy w niektrych zastosowaniach wprawiaj w zakopotanie.
Polece wbudowanych powoki i funkcji nie mona zatrzymywa/wznawia.
Polecenia zoone i sekwencje polece postaci `a ; b ; c' nie s
obsugiwane przychylnie przy prbie wstrzymania procesu. Gdy pro-
ces jest zatrzymany, powoka natychmiast wykonuje nastpnej
polecenie sekwencji. Wystarcza umieszczanie sekwencji polece
wewntrz nawiasw by wymusi wykonanie ich przez podpowok, ktra moe
by zatrzymana jako cao.
Polecenia wewntrz konstrukcji podstawiania polece $(...) nie s
analizowane do momentu prby podstawienia. Powoduje to opnion
sygnalizacj bdw, pojawiajc si po upywie pewnego czasu od
wprowadzenia polecenia.
Zmienne tablicowe nie mog by (na razie) eksportowane.
GNU Bash-2.05a 13 listopada 2001 BASH(1)