Provided by:
manpages-pl_20060617-3_all 
NAZWA
ksh - Publiczna implementacja powloki Korna
WYWO/LANIE
ksh [+-abCefhikmnprsuvxX] [+-o opcja] [ [ -c /lacuch_komend
[nazwa_komendy]|-s|plik ] [argument ...] ]
OPIS
ksh to interpreter komend zaprojektowany zarowno do interakcyjnej pracy
z systemem, jak i do wykonywania skryptow. Jego jzyk komend jest
nadzbiorem (superset) jzyka powloki sh(1).
Uruchamianie pow/loki
Nastpujce opcje mog by uyte wylcznie w linii komend:
-c /lacuch_komend
powloka wykonuje komend(y) zawart(e) w /lacuchu_komend
-i tryb interakcyjny -- patrz poniej
-l powloka zameldowania -- patrz poniej tryb interakcyjny -- patrz
poniej
-s powloka wczytuje komendy ze standardowego wejcia; wszelkie
argumenty nie bdce opcjami s argumentami pozycyjnymi
-r tryb ograniczony -- patrz poniej
Ponadto wszelkie opcje, opisane w omowieniu wbudowanej komend set, mog
rownie zosta uyte w linii polece.
Jeli nie zostala podana ani opcja -c, ani opcja -s, wowczas pierwszy
argument nie bdcy opcj, okrela plik, z ktorego zostan wczytane komendy.
Jeli brak jest argumentow nie bdcych opcjami, to powloka wczytuje
komendy ze standardowego wejcia. Nazwa powloki (tj. zawarto parametru
$0) jest ustalana jak nastpuje: jeli uyto opcji -c i podano argument
nie bdcy opcj, to jest on nazw; jeli komendy s wczytywane z pliku,
wowczas nazwa tego pliku zostaje uyta jako nazwa powloki; w kadym innym
przypadku zostaje uyta nazwa, pod ktor powloka zostala wywolana (tzn.
warto argv[0]).
Powloka jest interakcyjna, jeli uyto opcji -i lub jeli zarowno
standardowe wejcie, jak i standardowe wyjcie bldow, jest skojarzone z
jakim terminalem. W interakcyjnej powloce kontrola zada (jeli takowa
jest dostpna w danym systemie) jest wlczona oraz ignorowane s nastpujce
sygnaly: INT, QUIT oraz TERM. Ponadto powloka wywietla zacht przed
odczytywaniem polece (patrz parametry PS1 i PS2). Dla
nieinterakcyjnych powlok, uaktywnia si domylnie opcja trackall (patrz
poniej: komenda set).
Powloka jest ograniczona, jeli zastosowano opcj -r lub gdy albo glowna
cz nazwy (basename), pod jak wywolano powlok, albo parametr SHELL,
pasuj do wzorca *r*sh (na przyklad: rsh, rksh, rpdksh itp.). Po
przetworzeniu przez powlok wszystkich plikow profili i $ENV wlczane s
nastpujce ograniczenia:
o niedostpna jest komenda cd
o nie mog by zmieniane parametry: SHELL, ENV i PATH.
o nazwy polece nie mog by podawane z uyciem cieek bezwzgldnych lub
wzgldnych [tlum.: tj. dostpne s tylko przez nazw bez cieki]
o niedostpna jest opcja -p wbudowanego polecenia command
o nie mog by uywane przekierowania tworzce pliki (np.: >, >|, >>,
<>)
Powloka jest uprzywilejowana, jeli zastosowano opcj -p lub jeli
rzeczywisty identyfikator uytkownika lub jego grupy nie jest zgodny z
efektywnym identyfikatorem uytkownika czy grupy (patrz: getuid(2),
getgid(2)). Uprzywilejowana powloka nie przetwarza ani $HOME/.profile,
ani parametru ENV (patrz poniej), przetwarza za to plik
/etc/suid_profile. Wykasowanie opcji uprzywilejowania powoduje, e
powloka ustawia swoj efektywny identyfikator uytkownika i grupy na
wartoci faktycznego identyfikatora uytkownika (user-id) i jego grupy
(group-id).
Jeli glowna cz nazwy, pod jak dana powloka zostala wywolana (tzn.
argv[0]) zaczyna si od - lub uyto opcji -l, to zaklada si, e powloka ma
by powlok zgloszeniow i wczytywana jest zawarto plikow /etc/profile i
$HOME/.profile, jeli takie istniej i mona je odczyta.
Jeeli parametr ENV jest ustawiony podczas uruchamiania powloki (albo w
wypadku powlok zgloszeniowych - po przetworzeniu dowolnych plikow
profilowych), to jego zawarto zostaje poddana zastpowaniu. Zastpowane
s parametry, komendy, wyraenia arytmetyczne oraz tylda. Nastpnie
wynikajca z tej operacji nazwa jest interpretowana jako nazwa pliku,
podlegajcego wczytaniu i wykonaniu. Jeli parametr ENV jest pusty (i
niezerowy), a pdksh zostal skompilowany ze zdefiniowanym makrem
DEFAULT_ENV, to po wykonaniu wszelkich ju wyej wymienionych podstawie,
zostaje wczytany plik okrelony tym makrem.
Kod wyjcia powloki wynosi 127, jeli plik komend podany we linii
wywolania nie mogl zosta otwarty, lub kod wyjcia jest niezerowy, jeli
wystpil krytyczny bld skladni podczas wykonywania tego skryptu. W
razie braku bldow krytycznych, kod wyjcia jest rowny kodowi ostatnio
wykonanej komendy lub zeru, jeli nie wykonano adnej komendy.
Sk/ladnia polece
Powloka rozpoczyna analiz skladniow wejcia od podzialu go na
poszczegolne slowa word. Slowa, stanowice cigi znakow, ograniczane s
niecytowanymi bialymi znakami whitespace (spacja, tabulator i nowa
linia) lub metaznakami (<, >, |, ;, &, ( i )). Poza ograniczaniem slow
spacje i tabulatory s ignorowane. Natomiast znaki zmiany linii zwykle
rozgraniczaj komendy. Metaznaki stosowane s do tworzenia nastpujcych
symboli: <, <&, <<, >, >&, >>, itd., slucych do okrelania przekierowa
(patrz: "Przekierowywanie wejcia/wyjcia" poniej); | sluy do tworzenia
potokow; |& sluy do tworzenia koprocesow (patrz: "Koprocesy" poniej); ;
sluy do oddzielania komend; & sluy do tworzenia potokow
asynchronicznych; && i || slu do okrelenia wykonania warunkowego; ;;
jest uywany w poleceniach case; (( .. )) s uywane w wyraeniach
arytmetycznych; i w kocu, ( .. ) slu do tworzenia podpowlok.
Biale znaki lub metaznaki mona zacytowywa pojedynczo przy uyciu znaku
odwrotnego ukonika (\) lub grupami w podwojnych (") lub pojedynczych
(') cudzyslowach. Zauwa, i nastpujce znaki podlegaj rownie specjalnej
interpretacji przez powlok i musz by cytowane, jeli maj by uyte
doslownie: \, ", ', #, $, `, ~, {, }, *, ? i [. Pierwsze trzy to wyej
wspomniane symbole cytowania (patrz: "Cytowanie" poniej); #, na pocztku
slowa rozpoczyna komentarz -- wszystko po znaku #, a do koca linii jest
ignorowane; $ sluy do wprowadzenia podstawienia parametru, komendy lub
wyraenia arytmetycznego (patrz: "Podstawienia" poniej); ` rozpoczyna
podstawienia komendy w starym stylu (patrz: "Podstawienia" poniej); ~
rozpoczyna rozwinicie katalogu (patrz: "Rozwijanie tyld" poniej); { i }
obejmuj alternacje w stylu csh(1) (patrz: "Rozwijanie nawiasow"
poniej); i na koniec, *, ? oraz [ s stosowane przy tworzeniu nazw
plikow (patrz: "Wzorce nazw plikow" poniej).
W trakcie analizy slow i symboli, powloka tworzy komendy, ktorych
wyronia si dwa rodzaje: komendy proste, zwykle programy do wykonania,
oraz komendy z/loone, takie jak dyrektywy for i if, struktury grupujce i
definicje funkcji.
Polecenie proste sklada si z kombinacji przyporzdkowa wartoci
parametrom (patrz: "Parametry"), przekierowa wejcia/wyjcia (patrz:
"Przekierowania wejcia/wyjcia") i slow komend; Jedynym ograniczeniem
jest to, e wszelkie podstawienia wartoci parametrow musz wystpowa przed
slowami komend. Slowa komend, jeli zostaly podane, okrelaj polecenie,
ktore naley wykona, wraz z jego argumentami. Komenda moe by komend
wbudowan powloki, funkcj lub komend zewntrzn, tzn. oddzielnym plikiem
wykonywalnym, ktory jest odnajdowany przy uyciu wartoci parametru PATH
(patrz: "Wykonywanie komend" poniej). Trzeba zauway, e wszystkie
komendy maj swoj kod zakoczenia: dla polece zewntrznych jest on
powizany z kodem zwracanym przez wait(2) (jeli komenda nie zostala
odnaleziona, wowczas kod wynosi 127, natomiast jeli nie mona bylo jej
wykona, to kod wynosi 126). Kody zwracane przez inne polecenia
(komendy wbudowane, funkcje, potoki, listy, itp.) s precyzyjnie
okrelone, a ich opis towarzyszy opisowi danego konstruktu. Kod wyjcia
komendy zawierajcej jedynie przyporzdkowania wartoci parametrom,
odpowiada kodowi ostatniego wykonanego podczas tego podstawienia lub
zeru, jeli adne podstawienia nie mialy miejsca.
Przy pomocy symbolu | komendy mog zosta powizane w potoki. W potokach
standardowe wyjcie wszystkich komend poza ostatnim, zostaje
wyprowadzone (patrz pipe(2)) na standardowe wejcie nastpnej komendy.
Kod wyjcia potoku jest rowny kodowi zwroconemu przez ostatni komend
potoku. Potok moe zosta poprzedzony zarezerwowanym slowem !,
powodujcym zmian kodu wyjcia na jego logiczne przeciwiestwo. Tzn. jeli
pierwotnie kod wyjcia wynosil 0, to bdzie on mial warto 1, natomiast
jeli pierwotn wartoci nie bylo 0, to kodem przeciwstawnym jest 0.
List komend tworzymy rozdzielajc potoki jednym z nastpujcych symboli:
&&, ||, &, |& i ;. Pierwsze dwa oznaczaj warunkowe wykonanie: cmd1 &&
cmd2 wykonuje cmd2 tylko wtedy, jeeli kod wyjcia cmd1 byl zerowy.
Natomiast || zachowuje si dokladnie odwrotnie. -- cmd2 zostaje wykonane
jedynie, jeli kod wyjcia cmd1 byl rony od zera. && i || wi rownowanie,
a zarazem mocniej ni &, |& i ;, ktore z kolei rownie posiadaj t sam sil
wizania. Symbol & powoduje, e poprzedzajca go komenda zostanie
wykonana asynchronicznie, tzn. powloka uruchamia dan komend, jednak nie
czeka na jej zakoczenie (powloka ledzi dokladnie wszystkie
asynchroniczne komendy -- patrz: "Kontrola zada" poniej). Jeli komenda
asynchroniczna jest uruchomiona przy wylczonej kontroli zada (tj. w
wikszoci skryptow), wowczas jest ona uruchamiana z wylczonymi sygnalami
INT i QUIT oraz przekierowanym wejciem do /dev/null (aczkolwiek
przekierowania, ustalone w samej komendzie asynchronicznej maj tu
pierwszestwo). Operator |& rozpoczyna koproces, stanowicy specjalnego
rodzaju komend asynchroniczn (patrz: "Koprocesy" poniej). Zauwa, e po
operatorach && i || musi wystpowa komenda, podczas gdy nie jest to
konieczne po &, |& i ;. Kodem wyjcia listy komend jest kod ostatniego
wykonanego w niej polecenia, z wyjtkiem list asynchronicznych, dla
ktorych kod wynosi 0.
Komendy zloone tworzymy przy pomocy nastpujcych slow zarezerwowanych --
slowa te s rozpoznane tylko wtedy, gdy nie s zacytowane i wystpuj jako
pierwsze wyrazy w komendzie (tj. nie s poprzedzone adnymi
przyporzdkowywaniami wartoci parametrom czy przekierowaniami):
case else function then !
do esac if time [[
done fi in until {
elif for select while }
Uwaga: Niektore powloki (lecz nie nasza) wykonuj polecenia sterujce w
podpowloce, gdy przekierowano jeden lub wicej z ich deskryptorow
plikow, tak wic wszelkiego rodzaju zmiany otoczenia w nich mog nie
dziala. Aby zachowa przenono naley stosowa polecenie exec do
przekierowa deskryptorow plikow przed poleceniem sterujcym.
W poniszym opisie polece zloonych, listy komend (zaznaczone przez
lista), po ktorych nastpuje slowo zarezerwowane, musz koczy si
rednikiem, przelamaniem wiersza lub (poprawnym gramatycznie) slowem
zarezerwowanym. Przykladowo,
{ echo foo; echo bar; }
{ echo foo; echo bar<newline>}
{ { echo foo; echo bar; } }
s poprawne, natomiast
{ echo foo; echo bar }
nie.
( lista )
Wykonaj list w podpowloce. Nie ma bezporedniej moliwoci
przekazania wartoci parametrow podpowloki z powrotem do jej
powloki macierzystej.
{ lista }
Konstrukcja zloona; lista zostaje wykonana, lecz nie w
podpowloce. Zauwa, e { i } to zarezerwowane slowa, a nie
metaznaki.
case s/lowo in [ [(] wzorzec [| wzorzec] ... ) lista ;; ] ... esac
Wyraenie case stara si dopasowa s/lowo do jednego z danych
wzorc'ow; wykonywana jest lista powizana z pierwszym poprawnie
dopasowanym wzorcem. Wzorce stosowane w wyraeniach case
odpowiadaj wzorcom stosowanym do specyfikacji nazw plikow z
wyjtkiem tego, e nie obowizuj ograniczenia zwizane z . i /.
Prosz zwroci uwag na to, e wszelkie niecytowane biale znaki
przed wzorcem i po nim zostaj usunite; wszelkie spacje we wzorcu
musz by cytowane. Zarowno slowa, jak i wzorce podlegaj
podstawieniom parametrow, rozwiniciom arytmetycznym oraz
podstawieniu tyldy. Ze wzgldow historycznych, moemy zastosowa
nawiasy otwierajcy i zamykajcy zamiast in i esac (w szczegolnoci
wic, case $foo { *) echo bar; }). Kodem wyjcia wyraenia case
jest kod wykonanej listy; jeli nie zostala wykonana adna lista,
wowczas kod wyjcia wynosi zero.
for nazwa [ in s/lowo ... zakoczenie ] do lista done
gdzie zakoczenie jest albo znakiem koca linii, albo ;. Dla
kadego s/lowa w podanej licie slow, parametr nazwa zostaje
ustawiony na to slowo i lista zostaje wykonana. Jeeli nie bdzie
uyte in do specyfikacji listy slow, to zamiast tego zostan uyte
parametry pozycyjne ("$1", "$2", itp.). Ze wzgldow
historycznych, moemy zastosowa nawiasy otwierajcy i zamykajcy
zamiast do i done (w szczeg'olnoci, for i; { echo $i; }). Kodem
wyjcia wyraenia for jest ostatni kod wyjcia danej listy; jeli
lista nie zostala w ogole wykonana, wowczas kod wynosi zero.
if lista then lista [elif lista then lista] ... [else lista] fi
Jeli kod wyjcia pierwszej listy jest zerowy, to zostaje wykonana
druga lista; w przeciwnym razie, jeli mamy takow, zostaje
wykonana lista po elif, z podobnymi konsekwencjami. Jeli
wszystkie listy po if i elif wyka bld (tzn. zwroc niezerowy
kod), to zostanie wykonana lista po else. Kodem wyjcia wyraenia
if jest kod wykonanej listy, niestanowicej warunku. Jeli adna
nieokrelajca warunku lista nie zostanie wykonana, wowczas kod
wyjcia wynosi zero.
select nazwa [ in s/lowo ... zakoczenie ] do lista done
gdzie zakoczenie jest albo przelamaniem wiersza, albo ;.
Wyraenie select umoliwia automatyczn prezentacj uytkownikowi
menu, wraz z moliwoci wyboru z niego. Przeliczona lista
wykazanych s/l'ow zostaje wypisana na standardowym wyjciu bldow,
po czym zostaje wywietlony symbol zachty (PS3, czyli domylnie
`#? '). Nastpnie zostaje wczytana liczba odpowiadajca danemu
punktowi menu ze standardowego wejcia, po czym nazwie zostaje
przyporzdkowane w ten sposob wybrane slowo (lub warto pusta,
jeeli wybor byl niewlaciwy), zmiennej REPLY zostaje
przyporzdkowane to, co zostalo wczytane (po usuniciu pocztkowych
i kocowych bialych znakow), i lista zostaje wykonana. Jeli
wprowadzono pust lini (dokladniej: zero lub wicej znaczkow IFS),
wowczas menu zostaje ponownie wywietlone, bez wykonywania listy.
Gdy wykonanie listy zostaje zakoczone, wowczas przeliczona lista
wyborow zostaje wywietlona ponownie, jeli REPLY jest zerowe,
ponownie wywietlany jest symbol zachty i tak dalej. Proces ten
si powtarza, a do wczytania znaku koca pliku, otrzymania sygnalu
przerwania lub wykonania polecenia przerwania (break) w rodku
ptli. Jeli opuszczono in s/lowo ..., wowczas uyte zostaj
parametry pozycyjne (tzn., "$1", "$2", itp.). Ze wzgldow
historycznych, moemy zastosowa nawiasy otwierajcy i zamykajcy
zamiast do i done (w szczeg'olnoci, select i; { echo $i; }).
Kodem wyjcia wyraenia select jest zero, jeli uyto polecenia
przerwania do wyjcia z ptli albo niezero w przeciwnym wypadku.
until lista do lista done
Dziala dokladnie jak while, z wyjtkiem tego, e zawarto ptli jest
wykonywana jedynie wtedy, gdy kod wyjcia pierwszej listy jest
niezerowy.
while lista do lista done
Wyraenie while okrela ptl o warunku sprawdzanym przed
wykonaniem. Zawarto ptli jest wykonywana dopoki, dopoty kod
wyjcia pierwszej listy jest zerowy. Kodem wyjcia wyraenia while
jest ostatni kod wyjcia listy w zawartoci tej ptli; gdy zawarto
nie zostanie w ogole wykonana, wowczas kod wynosi zero.
function nazwa { lista }
Definiuje funkcj o nazwie nazwa. Patrz: "Funkcje" poniej.
Prosz zwroci uwag, e przekierowania tu po definicji funkcji
zostaj zastosowane podczas wykonywania jej zawartoci, a nie
podczas przetwarzania jej definicji.
nazwa () polecenie
Niemal dokladnie to samo co w function. Patrz: "Funkcje"
poniej.
(( wyraenie ))
Warto wyraenia arytmetycznego wyraenie zostaje przeliczona;
rownowane do let "wyraenie". patrz: "Wyraenia arytmetyczne" i
opis polecenia let poniej..
[[ expression ]]
Podobne do komend test i [ ... ] (ktore opisujemy poniej), z
nastpujcymi ronicami:
o Rozdzielanie pol i generacja nazw plikow nie s wykonywane
na argumentach.
o Operatory -a (i) oraz -o (lub) zostaj zastpione
odpowiednio przez && i ||.
o Operatory (dok/ladniej: -f, =, !, itp.) nie mog by
cytowane.
o Drugi operand dla != i = jest traktowany jako wzorzec (w
szczeg'olnoci, porownanie
[[ foobar = f*r ]]
jest sukcesem).
o Mamy do dyspozycji dwa dodatkowe operatory binarne: < i
>, ktore zwracaj prawd, gdy pierwszy lacuchowy operand
jest odpowiednio mniejszy lub wikszy od drugiego operandu
lacuchowego.
o Jednoargumentowa posta operacji test, ktora sprawdza, czy
jedyny operand jest dlugoci zerowej, jest niedozwolona -
operatory zawsze musz by wykazywane jawnie, w
szczeg'olnoci, zamiast
[ cig ]
naley uy
[[ -n cig ]]
o Podstawienia parametrow, komend i arytmetyczne zostaj
wykonane w trakcie wyliczania wyraenia. Do operatorow &&
i || stosowana jest metoda uproszczonego okrelania ich
wartoci. To znaczy, e w wyraeniu
[[ -r foo && $(< foo) = b*r ]]
warto $(< foo) zostaje wyliczona wtedy i tylko wtedy, gdy
plik o nazwie foo istnieje i jest czytelny.
Cytowanie
Cytowanie stosuje si do zapobiegania traktowaniu przez powlok pewnych
znakow czy slow w specjalny sposob. Istniej trzy metody cytowania: Po
pierwsze, \ cytuje nastpny znak, chyba e mieci si on na kocu wiersza,
wowczas zarowno \ jak i znak nowej linii zostaj usunite. Po drugie
pojedynczy cudzyslow (') wycytowywuje wszystko, a po nastpny pojedynczy
cudzyslow (wraz ze zmianami linii wlcznie). Po trzecie, podwojny
cudzyslow (") wycytowywuje wszystkie znaki, poza $, ` i \, a po nastpny
niecytowany podwojny cudzyslow. $ i ` wewntrz podwojnych cudzyslowow
zachowuj zwykle znaczenie (tzn. oznaczaj podstawienie wartoci
parametru, komendy lub wyraenia arytmetycznego), jeli tylko nie
zostanie wykonany jakikolwiek podzial pol na wyniku podwojnymi
cudzyslowami wycytowanych podstawie. Jeli po \, wewntrz cigu znakow
cytowanego podwojnymi cudzyslowami nastpuje \, $, ` lub ", to zostaje
on zastpiony drugim z tych znakow. Jeli po nim nastpuje znak nowej
linii, wowczas zarowno \, jak i znak zmiany linii zostaj usunite; w
przeciwnym razie zarowno znak \, jak i nastpujcy po nim znak nie
podlegaj adnej zamianie.
Uwaga: patrz "Tryb POSIX" poniej pod wzgldem szczegolnych regul
obowizujcych sekwencje znakow postaci "...`...\"...`..".
Aliasy
Istniej dwa rodzaje aliasow: normalne aliasy komend i aliasy ledzone.
Aliasy komend stosowane s zwykle jako skroty dla dlugich a czsto
stosowanych komend. Powloka rozwija aliasy komend (tzn. podstawia pod
nazw aliasu jego zawarto), gdy wczytuje pierwsze slowo komendy.
Rozwinity alias zostaje ponownie przetworzony, aby uwzgldni ewentualne
wystpowanie dalszych aliasow. Jeli alias komendy koczy si spacj lub
tabulatorem, to wowczas nastpne slowo zostaje rownie sprawdzone pod
wzgldem rozwinicia aliasow. Proces rozwijania aliasow koczy si przy
napotkaniu slowa, ktore nie jest aliasem, gdy napotka si wycytowane
slowo, lub gdy napotka si alias, ktory jest wlanie eksportowany.
Nastpujce aliasy s definiowane domylnie przez powlok:
autoload='typeset -fu'
functions='typeset -f'
hash='alias -t'
history='fc -l'
integer='typeset -i'
local='typeset'
login='exec login'
newgrp='exec newgrp'
nohup='nohup '
r='fc -e -'
stop='kill -STOP'
suspend='kill -STOP $$'
type='whence -v'
ledzone aliasy pozwalaj powloce na zapamitanie, gdzie odnalazla ona
konkretn komend. Gdy powloka po raz pierwszy szuka w ciece pocenia
oznaczonego jako alias ledzony, to zapamituje sobie peln ciek tej
komendy. Gdy powloka nastpnie wykonuje dan komend po raz drugi,
wowczas sprawdza, czy ta cieka jest nadal aktualna i jeli tak jest, to
nie przeglda ju wicej pelnej cieki w poszukiwaniu danej komendy.
ledzone aliasy mona wywietli lub stworzy stosujc alias -t. Zauwa, e
zmieniajc warto parametru PATH czycimy rownie cieki dla wszelkich
ledzonych aliasow. Jeli zostala wlczona opcja trackall (tzn., set -o
trackall lub set -h), wowczas powloka ledzi wszelkie komendy. Ta opcja
zostaje wlczona domylnie dla wszelkich nieinterakcyjnych powlok. Dla
powlok interakcyjnych jedynie nastpujce komendy s ledzone domylnie:
cat, cc, chmod, cp, date, ed, emacs, grep, ls, mail, make, mv, pr, rm,
sed, sh, vi i who.
Podstawienia
Pierwszym krokiem, jaki wykonuje powloka podczas wykonywania prostej
komendy, jest przeprowadzenia podstawie na slowach tej komendy.
Istniej trzy rodzaje podstawie: parametrow, komend i arytmetyczne.
Podstawienia parametrow, ktore dokladniej opiszemy w nastpnej sekcji,
maj posta $name lub ${...}; podstawienia komend maj posta $(command)
lub `command`; a podstawienia arytmetyczne: $((expression)).
Jeli podstawienie wystpuje poza podwojnymi cudzyslowami, wowczas wynik
tego podstawienia podlega zwykle podzialowi slow lub pol, w zalenoci od
biecej wartoci parametru IFS. Parametr IFS okrela list znakow, slucych
jako separatory w podziale lacuchow znakowych na pojedyncze wyrazy.
Wszelkie znaki z tego zestawu oraz tabulator, spacja i nowa linia
wlcznie, nazywane s bia/lymi znakami IFS. Cigi jednego lub wielu
bialych znakow z IFS w powizaniu z zerem oraz jednym lub wicej bialych
znakow nie wymienionych w IFS, rozgraniczaj pola. Wyjtkowo pocztkowe i
kocowe biale znaki IFS s usuwane (tzn. nie s przez nie tworzone adne
pocztkowe czy kocowe puste pola); natomiast pocztkowe lub kocowe biale
znaki spoza IFS tworz puste pola. Przykladowo: jeli IFS zawiera
`<spacja>:', to cig znakow `<spacja>A<spacja>:<spacja><spacja>B::D'
zawiera cztery pola: `A', `B', `' i `D'. Prosz zauway, e jeli parametr
IFS jest ustawiony na pusty cig znakow, to wowczas aden podzial pol nie
ma miejsca; gdy parametr ten nie jest ustawiony w ogole, wowczas
stosuje si domylnie jako rozgraniczniki spacji, tabulatora i nowej
linii.
Jeli nie podajemy inaczej, to wynik podstawienia podlega rownie
rozwijaniu nawiasow i nazw plikow (patrz odpowiednie akapity poniej).
Podstawienie komendy zostaje zastpione wyjciem, wygenerowanym podczas
wykonania danej komendy przez podpowlok. Dla podstawienia $(komenda)
zachodz normalne reguly cytowania podczas analizy komendy, cho jednak
dla postaci `komenda`, znak \ z jednym z $, ` lub \ tu po nim, zostaje
usunity (znak \ z nastpstwem jakiegokolwiek innego znaku zostaje
niezmieniony). Jako przypadek wyjtkowy podczas podstawiania komend,
komenda postaci < plik zostaje zinterpretowana, jako oznaczajca
podstawienie zawartoci pliku plik ($(< foo) ma wic ten sam efekt co
$(cat foo), jest jednak bardziej efektywne albowiem nie zostaje
odpalony aden dodatkowy proces).
UWAGA: Wyraenia $(komenda) s analizowane obecnie poprzez odnajdywanie
zaleglego nawiasu, niezalenie od wycytowa. Miejmy nadziej, e zostanie
to moliwie szybko poprawione.
Podstawienia arytmetyczne zostaj zastpione wartoci wyniku danego
wyraenia. Przykladowo wic, komenda echo $((2+3*4)) wywietla 14.
Patrz: "Wyraenia arytmetyczne", aby odnale opis wyrae.
Parametry
Parametry to zmienne w powloce; mona im przyporzdkowywa wartoci oraz
wyczytywa je przez podstawienia parametrow. Nazwa parametru jest albo
jednym ze znakow interpunkcyjnych o specjalnym znaczeniu lub cyfr,
jakie opisujemy poniej, lub liter z nastpstwem jednej lub wicej liter
albo cyfr (`_' zalicza si to liter). Podstawienia parametrow maj posta
$nazwa lub ${nazwa}, gdzie nazwa jest nazw danego parametru. Gdy
podstawienie zostanie wykonane na parametrze, ktory nie zostal
ustalony, wowczas zerowy cig znakow jest jego wynikiem, chyba e zostala
wlczona opcja nounset (set -o nounset lub set -u), co oznacza, e
wystpuje wowczas bld.
Wartoci mona przyporzdkowywa parametrom na wiele ronych sposobow. Po
pierwsze, powloka domylnie ustala pewne parametry, takie jak #, PWD,
itp.; to jedyny sposob, w jaki s ustawiane specjalnymi parametry o
dlugoci jednego znaku. Po drugie, parametry zostaj importowane z
otocznia powloki podczas jej uruchamiania. Po trzecie, parametrom mona
przypisa wartoci w wierszu polece, tak jak np. `FOO=bar' przypisuje
parametrowi FOO warto bar; wielokrotne przypisania wartoci s moliwe w
jednym wierszu komendy i moe po nich wystpowa prosta komenda, co
powoduje, e przypisania te s wowczas jedynie aktualne podczas
wykonywania danej komendy (tego rodzaju przypisania zostaj rownie
wyeksportowane, patrz poniej, co do tego konsekwencji). Prosz zwroci
uwag, i aby powloka rozpoznala je jako przypisanie wartoci parametrowi,
zarowno nazwa parametru jak i = nie mog by cytowane. Czwartym sposobem
ustawiania parametrow jest zastosowanie jednej z komend: export,
readonly lub typeset; patrz ich opisy w rozdziale "Wykonywanie komend".
Po czwarte, ptle for i select ustawiaj parametry, tak jak i rownie
komendy getopts, read i set -A. Na zakoczenie, parametrom mona
przyporzdkowywa wartoci stosujc operatory nadania wartoci wewntrz wyrae
arytmetycznych (patrz: "Wyraenia arytmetyczne" poniej) lub stosujc
posta ${nazwa=warto} podstawienia parametru (patrz poniej).
Parametry opatrzone atrybutem eksportowania (ustawianego przy pomocy
komendy export lub typeset -x albo przez przyporzdkowanie wartoci
parametru z nastpujc prost komend) zostaj umieszczone w otoczeniu
(patrz environ(5)) polece wykonywanych przez powlok jako pary
nazwa=warto. Kolejno, w jakiej parametry wystpuj w otoczeniu komendy
jest bliej nieustalona. Podczas uruchamiania powloka pozyskuje
parametry ze swojego otoczenia i automatycznie ustawia na tych
parametrach atrybut eksportowania.
Mona stosowa modyfikatory do postaci ${nazwa} podstawienia parametru:
${nazwa:-s/lowo}
jeeli parametrnazwa jest ustawiony i niezerowy, wowczas zostaje
podstawiona jego wlasna warto, w przeciwnym razie zostaje
podstawione s/lowo.
${nazwa:+s/lowo}
jeli parametr nazwa jest ustawiony i niezerowy, wowczas zostaje
podstawione s/lowo, inaczej nic nie zostaje podstawione.
${nazwa:=s/lowo}
jeli parametr nazwa jest ustawiony i niezerowy, wowczas zostaje
podstawiony on sam, w przeciwnym razie zostaje mu
przyporzdkowana warto s/lowo i warto wynikajca ze s/lowa zostaje
podstawiona.
${nazwa:?s/lowo}
jeeli parametr nazwa jest ustawiony i niezerowy, wowczas zostaje
podstawiona jego wlasna warto, w przeciwnym razie s/lowo zostaje
wywietlone na standardowym wyjciu bldow (tu po nazwa:) i
zachodzi bld (powodujcy normalnie zakoczenie calego skryptu
powloki, funkcji lub .-skryptu). Jeli slowo zostalo pominite,
wowczas zamiast niego zostaje uyty lacuch `parameter null or not
set'.
W powyszych modyfikatorach moemy omin :, czego skutkiem bdzie, e
warunki bd jedynie wymaga, aby nazwa byl ustawiony lub nie (a nie eby
byl ustawiony i niezerowy). Jeli potrzebna jest warto s/lowo, wowczas
zostaj na nim wykonane podstawienia parametrow, komend, arytmetyczne i
tyldy; natomiast, jeli s/lowo okae si niepotrzebne, wowczas jego warto
nie zostanie obliczana.
Mona stosowa, rownie podstawienia parametrow o nastpujcej postaci:
${#nazwa}
Liczba parametrow pozycyjnych, jeli nazw jest *, @ lub nie jest
podana albo dlugo cigu bdcego wartoci parametru nazwa.
${#nazwa[*]}, ${#nazwa[@]}
Liczba elementow w tablicy nazwa.
${nazwa#wzorzec}, ${nazwa##wzorzec}
Gdy wzorzec naklada si na pocztek wartoci parametru nazwa,
wowczas pasujcy tekst zostaje pominity w wynikajcym z tego
podstawieniu. Pojedynczy # oznacza najkrotsze moliwe
dopasowanie do wzorca, a dwa # oznaczaj jak najdlusze
dopasowanie.
${nazwa%wzorzec}, ${nazwa%%wzorzec}
Podobnie jak w podstawieniu ${..#..}, tylko e dotyczy koca
wartoci.
Nastpujce specjalne parametry zostaj ustawione domylnie przez powlok i
nie mona przyporzdkowywa jawnie wartoci nadanych:
! Id ostatniego uruchomionego w tle procesu. Jeli nie ma aktualnie
procesow uruchomionych w tle, wowczas parametr ten jest
nieustawiony.
# Liczba parametrow pozycyjnych (tzn., $1, $2, itp.).
$ ID procesu odpowiadajcego danej powloce lub PID pierwotnej
powloki, jeli mamy do czynienia z podpowlok.
- Konkatenacja biecych opcji jednoliterowych (patrz komenda set
poniej, aby pozna dostpne opcje).
? Kod wyjcia ostatniej wykonanej komendy nieasynchronicznej. Jeli
ostatnia komenda zostala zabita sygnalem, wowczas $? przyjmuje
warto 128 plus numer danego sygnalu.
0 Nazwa, pod jak dana powloka zostala wywolana (tzn., argv[0]),
lub nazwa komendy, ktora zostala wywolana przy uyciu opcji -c i
nazwa komendy zostala podana, lub argument plik, jeli taki
zostal podany. Jeli opcja posix nie jest ustawiona, to $0
zawiera nazw biecej funkcji lub skryptu.
1 ... 9
Pierwszych dziewi parametrow pozycyjnych podanych powloce czy
funkcji lub .-skryptowi. Dostp do dalszych parametrow
pozycyjnych odbywa si przy pomocy ${liczba}.
* Wszystkie parametry pozycyjne (z wyjtkiem parametru 0), tzn., $1
$2 $3.... Gdy uyte poza podwojnymi cudzyslowami, wowczas
parametry zostaj rozgraniczone w pojedyncze slowa (podlegajce
rozgraniczaniu slow); jeli uyte pomidzy podwojnymi cudzyslowami,
wowczas parametry zostaj rozgraniczone pierwszym znakiem podanym
przez parametr IFS (albo pustymi cigami znakow, jeli IFS jest
zerowy).
@ Tak jak $*, z wyjtkiem zastosowania w podwojnych cudzyslowach,
gdzie oddzielne slowo zostaje wygenerowane dla kadego parametru
pozycyjnego z osobna - jeli brak parametrow pozycyjnych, wowczas
nie generowane jest adne slowo ("$@" moe by uyte aby otrzyma
dostp bezporedni do argumentow bez utraty argumentow zerowych
lub rozgraniczania ich przerwami).
Nastpujce parametry s ustawiane przez powlok:
_ (podkrelenie)
Gdy jaka komenda zostaje wykonywana przez powlok, ten parametr
przyjmuje w otoczeniu odpowiedniego nowego procesu warto cieki
tej komendy. W interakcyjnym trybie pracy, ten parametr
przyjmuje w pierwotnej powloce ponadto warto ostatniego slowa
poprzedniej komendy Podczas wartociowania wiadomoci typu
MAILPATH, parametr ten zawiera wic nazw pliku, ktory si zmienil
(patrz parametr MAILPATH poniej).
CDPATH cieka przeszukiwania dla wbudowanej komendy cd. Dziala tak samo
jak PATH dla katalogow nierozpoczynajcych si od / w komendach
cd. Prosz zwroci uwag, e jeli CDPATH jest ustawiony i nie
zawiera ani . ani cieki pustej, to wowczas katalog biecy nie
jest przeszukiwany.
COLUMNS
Liczba kolumn terminala lub okienka. Obecnie ustawiany wartoci
cols zwracan przez komend stty(1), jeli ta warto nie jest rowna
zeru. Parametr ten ma znaczenie w interakcyjnym trybie edycji
wiersza komendy i dla komend select, set -o oraz kill -l, w celu
wlaciwego formatowania zwracanych informacji.
EDITOR Jeli nie zostal ustawiony parametr VISUAL, wowczas kontroluje on
tryb edycji wiersza komendy w powlokach interakcyjnych. Patrz
parametr VISUAL poniej, aby si dowiedzie, jak to dziala.
ENV Jeli parametr ten okae si by ustawionym po przetworzeniu
wszelkich plikow profilowych, wowczas jego rozwinita warto
zostaje wykorzystana jako nazwa pliku zawierajcego dalsze
komendy inicjujce powloki. Zwykle zawiera definicje funkcji i
aliasow.
ERRNO Calkowita warto odpowiadajca zmiennej errno powloki -- wskazuje
przyczyn wystpienia bldu, gdy ostatnie wywolanie systemowe nie
powiodlo si.
Jak dotychczas niezaimplementowane.
EXECSHELL
Jeli ustawiono, to wowczas zawiera powlok, jakiej naley uy do
wykonywania komend, ktorych nie zdolal wykona execve(2), a ktore
nie zaczynaj si od cigu `#! pow/loka'.
FCEDIT Edytor uywany przez komend fc (patrz poniej).
FPATH Podobnie jak PATH, jeli powloka natrafi na niezdefiniowan funkcj
podczas pracy, stosowane do lokalizacji pliku zawierajcego
definicj tej funkcji. Rownie przeszukiwane, gdy komenda nie
zostala odnaleziona przy uyciu PATH. Patrz "Funkcje" poniej co
do dalszych informacji.
HISTFILE
Nazwa pliku uywanego do zapisu historii komend. Jeli warto
zostala ustalona, wowczas historia zostaje zaladowana z danego
pliku. Podobnie wielokrotne wcielenia powloki bd korzystaly z
jednej historii, jeli dla nich wartoci parametru HISTFILE
wskazuje na jeden i ten sam plik.
UWAGA: jeli HISTFILE nie zostalo ustawione, wowczas aden plik
historii nie zostaje uyty. W oryginalnej wersji powloki Korna
natomiast, przyjmuje si domylnie $HOME/.sh_history; w przyszloci
moe pdksh, bdzie rownie stosowal domylny plik historii.
HISTSIZE
Liczba komend zapamitywana w historii, domylnie 128.
HOME Domylna warto dla komendy cd oraz podstawiana pod niewycytowane
~ (patrz: "Rozwijanie tyldy" poniej).
IFS Wewntrzny separator pol, stosowany podczas podstawie i
wykonywania komendy read, do rozdzielania wartoci na oddzielne
argumenty; domylnie spacja, tabulator i przelamanie wiersza.
Szczegoly zostaly opisane w punkcie "Podstawienia" powyej.
Uwaga: ten parametr nie jest importowany z otoczenia, podczas
uruchamiania powloki.
KSH_VERSION
Wersja i data kompilacji powloki (tylko do odczytu). Patrz
rownie na komendy wersji w "Interakcyjnej edycji wiersza polece
w trybie emacs" i "Edycji wiersza polece vi" poniej.
LINENO Numer wiersza w funkcji lub aktualnie wykonywanym skrypcie.
LINES Ilo wierszy terminala lub okienka pracy.
Jeszcze niezaimplementowane.
MAIL Jeli ustawiony, to uytkownik jest informowany o nadejciu nowej
poczty do wymienionego w tej opcji pliku docelowego. Ten
parametr jest ignorowany, jeli zostal ustawiony parametr
MAILPATH.
MAILCHECK
Jak czsto powloka ma sprawdza, czy pojawila si nowa poczta w
plikach podanych przez MAIL lub MAILPATH. Jeli 0, to powloka
sprawdza przed kad now zacht. Wartoci domyln jest 600 (10
minut).
MAILPATH
Lista plikow sprawdzanych w poszukiwaniu nowej poczty. Lista ta
rozdzielana jest dwukropkami, ponadto po nazwie kadego z plikow
mona poda ? i wiadomo, ktora ma by wywietlona, jeli nadeszla
nowa poczta. Dla danej wiadomoci zostan wykonane podstawienia
komend, parametrow i arytmetyczne. Podczas podstawie parametr $_
zawiera nazw tego pliku. Domylnym zawiadomieniem o nowej
poczcie jest you have mail in $_ (masz poczt w $_).
OLDPWD Poprzedni katalog roboczy. Nieustalony, jeli cd nie zmienilo z
powodzeniem katalogu od czasu uruchomienia powloki lub jeli
powloka nie wie, gdzie si aktualnie znajduje.
OPTARG Podczas uywania getopts zawiera argument dla aktualnie
rozpoznawanej opcji, jeli jest on oczekiwany.
OPTIND Indeks ostatniego przetworzonego argumentu podczas uywania
getopts. Przyporzdkowanie 1 temu parametrowi spowoduje, e
ponownie wywolane getopts przetworzy argumenty od pocztku.
PATH Lista rozdzielonych dwukropkiem katalogow, ktore s przeszukiwane
podczas odnajdywania jakiej komendy lub plikow typu .. Pusty
lacuch wynikajcy z pocztkowego lub kocowego dwukropka, albo
dwoch ssiednich dwukropkow jest traktowany jako `.', czyli
katalog biecy.
POSIXLY_CORRECT
Ustawienie tego parametru powoduje wlczenie opcji posix. Patrz:
"Tryb POSIX" poniej.
PPID Identyfikator ID procesu rodzicielskiego powloki (tylko do
odczytu).
PS1 PS1 to podstawowy symbol zachty dla powlok interakcyjnych.
Podlega podstawieniom parametrow, komend i arytmetycznym,
ponadto ! zostaje zastpione kolejnym numerem polecenia (patrz
komenda fc poniej). Sam znak ! moe zosta umieszczony w zachcie
uywajc !! w PS1. Zauwa, e poniewa edytory wiersza komendy
staraj si obliczy, jak dlugi jest symbol zachty (aby moc ustali,
ile miejsca pozostaje wolnego do prawego brzegu ekranu),
sekwencje wyjciowe w zachcie zwykle wprowadzaj pewien balagan.
Istnieje moliwo podpowiedzenia powloce, eby nie uwzgldniala
pewnych cigow znakow (takich jak kody wyjcia) przez podanie
przedrostka na pocztku symbolu zachty bdcego niewywietlalnym
znakiem (takim jak np. control-A) z nastpstwem przelamania
wiersza oraz odgraniczajc nastpnie kody wyjcia przy pomocy tego
niewywietlalnego znaku. Gdy brak niewywietlalnych znakow, to
nie ma adnej rady... Nawiasem mowic, nie ja jestem
odpowiedzialny za ten hack. To pochodzi z oryginalnego ksh.
Domyln wartoci jest `$ ' dla nieuprzywilejowanych uytkownikow, a
`# ' dla roota..
PS2 Drugorzdna zachta, o domylnej wartoci `> ', ktora jest
stosowana, gdy wymagane s dalsze wprowadzenia w celu dokoczenia
komendy.
PS3 Zachta stosowana przez wyraenie select podczas wczytywania
wyboru z menu. Domylnie `#? '.
PS4 Stosowany jako przedrostek komend, ktore zostaj wywietlone
podczas ledzenia toku pracy (patrz polecenie set -x poniej).
Domylnie `+ '.
PWD Obecny katalog roboczy. Moe by nieustawiony lub zerowy, jeli
powloka nie wie, gdzie si znajduje.
RANDOM Prosty generator liczb pseudolosowych. Za kadym razem, gdy
odnosimy si do RANDOM, jego wartoci zostaje przyporzdkowana
nastpna liczba z przypadkowego cigu liczb. Miejsce w danym cigu
moe zosta ustawione nadajc warto RANDOM (patrz rand(3)).
REPLY Domylny parametr komendy read, jeli nie pozostan podane jej adne
nazwy. Stosowany rownie w ptlach select do zapisu wartoci
wczytywanej ze standardowego wejcia.
SECONDS
Liczba sekund, ktore uplynly od czasu uruchomienia powloki lub
jeli parametrowi zostala nadana warto calkowita, liczba sekund
od czasu nadania tej wartoci plus ta warto.
TMOUT Gdy ustawiony na pozytywn warto calkowit, wiksz od zera, wowczas
ustala w interakcyjnej powloce czas w sekundach, przez jaki
bdzie ona czekala na wprowadzenie jakiego polecenia po
wywietleniu podstawowego symbolu zachty (PS1). Po przekroczeniu
tego czasu powloka zakoczy swoje dzialanie.
TMPDIR Katalog, w ktorym umieszczane s tymczasowe pliki powloki. Jeli
parametr ten nie jest ustawiony lub gdy nie zawiera pelnej cieki
do zapisywalnego katalogu, wowczas domylnie tymczasowe pliki
mieszcz si w /tmp.
VISUAL Jeli zostal ustawiony, ustala tryb edycji wiersza komend w
powlokach interakcyjnych. Jeli ostatni element cieki podanej w
tym parametrze zawiera cig znakow vi, emacs lub gmacs, to
odpowiednio zostaje uaktywniony tryb edycji: vi, emacs lub gmacs
(Gosling emacs).
Rozwijanie tyldy
Rozwijanie znakow tyldy, ktore ma miejsce rownolegle do podstawie
parametrow, zostaje wykonane na slowach rozpoczynajcych si niecytowanym
~. Znaki po tyldzie do pierwszego /, jeli taki wystpuje, s domylnie
traktowane jako nazwa uytkownika. Jeli nazwa uytkownika jest pusta lub
ma warto + albo -, to zostaje podstawiona warto parametrow
odpowiednioHOME, PWD lub OLDPWD. W przeciwnym razie zostaje
przeszukany plik hasel (plik passwd) w celu odnalezienia danej nazwy
uytkownika i w miejscu wystpienia tyldy zostaje podstawiony katalog
domowy danego uytkownika. Jeli nazwa uytkownika nie zostanie
odnaleziona w pliku hasel lub gdy w nazwie uytkownika wystpuje
jakiekolwiek cytowanie albo podstawienie parametru, wowczas nie zostaje
wykonane adne podstawienie.
W ustawieniach parametrow (tych poprzedzajcych proste komendy lub tych
wystpujcych w argumentach dla alias, export, readonly, i typeset),
rozwijanie znakow tyld zostaje wykonywane po jakimkolwiek
niewycytowanym (:) i nazwy uytkownikow zostaj ujte w dwukropki.
Katalogi domowe poprzednio rozwinitych nazw uytkownikow zostaj
umieszczone w pamici podrcznej i przy ponownym uyciu zostaj stamtd
pobierane. Komenda alias -d moe by uyta do wylistowania, zmiany i
dodania do tej pamici podrcznej (w szczeg'olnoci, `alias -d
fac=/usr/local/facilities; cd ~fac/bin').
Rozwijanie nawias'ow (przemiany)
Rozwinicia nawiasow przyjmujce posta
prefiks{cig1,...,cigN}sufiks
zostaj rozwinite w N wyrazow, z ktorych kady zawiera konkatenacj
prefiks, cign i sufiks (w szczeg'olnoci., `a{c,b{X,Y},d}e' zostaje
rozwinite do czterech wyrazow: ace, abXe, abYe i ade). Jak ju wyej
wspomniano, rozwinicia nawiasow mog by nakladane na siebie, a wynikajce
slowa nie s sortowane. Wyraenia nawiasowe musz zawiera niecytowany
przecinek (,), aby nastpilo rozwijanie (tak wic {} i {foo} nie zostaj
rozwinite). Rozwinicie nawiasow nastpuje po podstawieniach parametrow
i przed generowaniem nazw plikow.
Wzorce nazw plik'ow
Wzorcem nazwy pliku jest slowo zwierajce jeden lub wicej z
niecytowanych symboli ? lub * lub sekwencji [..]. Po wykonaniu
rozwinicia nawiasow, powloka zamienia wzorce nazw plikow na
uporzdkowane nazwy plikow, ktore pasuj do tego wzorca (jeli adne pliki
nie pasuj, wowczas dane slowo zostaje pozostawione bez zmian). Elementy
wzorcow maj nastpujce znaczenia:
? oznacza dowolny pojedynczy znak.
* oznacza dowoln sekwencj znakow.
[..] oznacza kady ze znakow pomidzy klamrami. Mona poda zakresy
znakow uywajc - pomidzy dwoma ograniczajcymi zakres znakami,
tzn. [a0-9] oznacza liter a lub dowoln cyfr. Aby przedstawi
sam znak - naley go albo zacytowa albo musi by to pierwszy lub
ostatni znak w licie znakow. Podobnie ] musi albo by
wycytowywane, albo by pierwszym lub ostatnim znakiem w licie,
jeli ma oznacza samego siebie, a nie zakoczenie listy. Rownie !
wystpujcy na pocztku listy ma specjalne znaczenie (patrz
poniej), tak wic aby reprezentowal samego siebie musi zosta
wycytowany lub wystpowa dalej w licie.
[!..] podobnie jak [..], tylko e oznacza dowolny znak niewystpujcy
pomidzy klamrami.
*(wzorzec| ... |wzorzec)
oznacza kady cig zawierajcy zero lub wicej wystpie podanych
wzorcow. Przykladowo: wzorzec *(foo|bar) obejmuje cigi `',
`foo', `bar', `foobarfoo', itp..
+(wzorzec| ... |wzorzec)
obejmuje kady cig znakow obejmujcy jedno lub wicej wystpie
danych wzorcow. Przykladowo: wzorzec +(foo|bar) obejmuje cigi
`foo', `bar', `foobarfoo', itp..
?(wzorzec| ... |wzorzec)
oznacza cig pusty lub cig obejmujcy jeden z danych wzorcow.
Przykladowo: wzorzec ?(foo|bar) obejmuje jedynie cigi `', `foo'
i `bar'.
@(wzorzec| ... |wzorzec)
obejmuje cig obejmujcy jeden z podanych wzorcow. Przykladowo:
wzorzec @(foo|bar) obejmuje wylcznie cigi `foo' i `bar'.
!(wzorzec| ... |wzorzec)
obejmuje dowolny cig nie obejmujcy adnego z danych wzorcow.
Przykladowo: wzorzec !(foo|bar) obejmuje wszystkie cigi poza
`foo' i `bar'; wzorzec !(*) nie obejmuje adnego cigu; wzorzec
!(?)* obejmuje wszystkie cigi (prosz si nad tym zastanowi).
Prosz zauway, e wzorce w pdksh obecnie nigdy nie obejmuj . i .., w
przeciwiestwie do oryginalnej powloki ksh, Bourne'a sh i basha, tak wic
to bdzie musialo si ewentualnie zmieni (na zle).
Prosz zauway, e powysze elementy wzorcow nigdy nie obejmuj kropki (.)
na pocztku nazwy pliku ani ukonika (/), nawet gdy zostaly one podane
jawnie w sekwencji [..]; ponadto nazwy . i .. nigdy nie s obejmowane,
nawet poprzez wzorzec .*.
Jeli zostala ustawiona opcja markdirs, wowczas, wszelkie katalogi
wynikajce z generacji nazw plikow zostaj oznaczone koczcym /.
POSIX-owe klasy znakow (tzn., [:nazwa_klasy:] wewntrz wyraenia typu
[..]) jak na razie nie zostaly zaimplementowane.
Przekierowanie wejcia/wyjcia
Podczas wykonywania komendy, jej standardowe wejcie, standardowe wyjcie
i standardowe wyjcie bldow (odpowiednio deskryptory plikow 0, 1 i 2) s
zwykle dziedziczone po powloce. Trzema wyjtkami od tej reguly s
komendy w potokach, dla ktorych standardowe wejcie i/lub standardowe
wyjcie odpowiadaj tym, ustalonym przez potok, komendy asychroniczne,
tworzone jeli kontrola prac zostala wylczona, ktorych standardowe
wejcie zostaje ustawione na /dev/null, oraz komendy, dla ktorych
zostalo ustawione jedno lub kilka z nastpujcych przekierowa:
> plik Standardowe wyjcie zostaje przekierowane do plik-u. Jeli plik
nie istnieje, wowczas zostaje utworzony; jeli istnieje i jest to
regularny plik oraz zostala ustawiona opcja noclobber, wowczas
wystpuje bld, w przeciwnym razie dany plik zostaje ucity do
pocztku. Prosz zwroci uwag, i oznacza to, e komenda
jaka_komenda < foo > foo otworzy plik foo do odczytu, a nastpnie
skasuje jego zawarto, gdy otworzy go do zapisu, zanim
jaka_komenda otrzyma szans przeczytania czegokolwiek z foo.
>| plik
tak jak dla >, tylko e zawarto pliku zostanie skasowana
niezalenie od ustawienia opcji noclobber.
>> plik
tak jak dla >, tylko e jeli dany plik ju istnieje, to nowe dane
bd dopisywane do niego, zamiast kasowania poprzedniej jego
zawartoci. Ponadto plik ten zostaje otwarty w trybie
dopisywania, tak wic wszelkiego rodzaju operacje zapisu na nim
dotycz jego aktualnego koca. (patrz open(2)).
< plik standardowe wejcie zostaje przekierowane do pliku, ktory jest
otwierany w trybie do odczytu.
<> plik
tak jak dla <, tylko e plik zostaje otworzony w trybie zapisu i
czytania.
<< znacznik
po wczytaniu wiersza komendy zawierajcego tego rodzaju
przekierowanie (zwane tu-dokumentem), powloka kopiuje wiersze z
komendy do tymczasowego pliku, a do natrafienia na wiersz
odpowiadajcy znacznikowi. Podczas wykonywania polecenia jego
standardowe wejcie jest przekierowane do pewnego pliku
tymczasowego. Jeli znacznik nie zawiera wycytowanych znakow,
zawarto danego pliku tymczasowego zostaje przetworzona tak,
jakby zawierala si w podwojnych cudzyslowach za kadym razem, gdy
dana komenda jest wykonywana. Tak wic zostan na nim wykonane
podstawienia parametrow, komend i arytmetyczne wraz z
interpretacj odwrotnego ukonika (\) i znakow wyj dla $, `, \ i
\nowa_linia. Jeli wiele tu-dokumentow zostanie zastosowanych w
jednym i tym samym wierszy komendy, to s one zachowane w podanej
kolejnoci.
<<- znacznik
tak jak dla <<, tylko e pocztkowe tabulatory zostaj usunite z
tu-dokumentu.
<& fd standardowe wejcie zostaje powielone z deskryptora pliku fd. fd
moe by pojedyncz cyfr, wskazujc na numer istniejcego deskryptora
pliku, liter p, wskazujc na plik powizany w wyjciem obecnego
koprocesu, lub znakiem -, wskazujcym, e standardowe wejcie
powinno zosta zamknite.
>& fd tak jak dla <&, tylko e operacja dotyczy standardowego wyjcia.
W kadym z powyszych przekierowa, mona poda jawnie deskryptor pliku,
ktorego ma ono dotyczy, (tzn. standardowego wejcia lub standardowego
wyjcia) przez poprzedzajc odpowiedni pojedyncz cyfr. Podstawienia
parametrow komend, arytmetyczne, tyld, tak jak i (gdy powloka jest
interakcyjna) generacje nazw plikow - zostan wykonane na argumentach
przekierowa plik, znacznik i fd. Trzeba jednak zauway, e wyniki
wszelkiego rodzaju generowania nazw plikow zostan uyte tylko wtedy, gdy
okrelaj nazw jednego pliku; jeli natomiast obejmuj one wiele plikow,
wowczas zostaje zastosowane dane slowo bez rozwini wynikajcych z
generacji nazw plikow. Prosz zwroci uwag, e w powlokach ograniczonych,
przekierowania tworzce nowe pliki nie mog by stosowane.
Dla prostych polece, przekierowania mog wystpowa w dowolnym miejscu
komendy, w komendach zloonych (wyraeniach if, itp.), wszelkie
przekierowania musz znajdowa si na kocu. Przekierowania s przetwarzane
po tworzeniu potokow i w kolejnoci, w jakiej zostaly podane, tak wic
cat /foo/bar 2>&1 > /dev/null | cat -n
wywietli bld z numerem linii wiersza poprzedzajcym go.
Wyraenia arytmetyczne
Calkowite wyraenia arytmetyczne mog by stosowane przy pomocy komendy
let, wewntrz wyrae $((..)), wewntrz odwola do tablic (w szczeg'olnoci,
nazwa[wyraenie]), jako numeryczne argumenty komendy test, i jako
wartoci w przyporzdkowywaniach do calkowitych parametrow.
Wyraenia mog zawiera alfanumeryczne identyfikatory parametrow,
odwolania do tablic i calkowite stale. Mog zosta rownie polczone
nastpujcymi operatorami jzyka C: (wymienione i zgrupowane w kolejnoci
rosncego priorytetu).
Operatory unarne:
+ - ! ~ ++ --
Operatory binarne:
,
= *= /= %= += -= <<= >>= &= ^= |=
||
&&
|
^
&
== !=
< <= >= >
<< >>
+ -
* / %
Operator trinarny:
?: (priorytet jest bezporednio wyszy od przyporzdkowania)
Operatory grupujce:
( )
Stale calkowite mog by podane w dowolnej bazie, stosujc notacj
baza#liczba, gdzie baza jest dziesitn liczb calkowit specyfikujc baz, a
liczba jest liczb zapisan w danej bazie.
Operatory s wyliczane w nastpujcy sposob:
unarny +
wynikiem jest argument (podane wylcznie dla pelnoci
opisu).
unary -
negacja.
! logiczna negacja; wynikiem jest 1 jeli argument jest
zerowy, a 0 jeli nie.
~ arytmetyczna negacja (bit-w-bit).
++ inkrement; musi by zastosowanym do parametru (a nie
literalu lub innego wyraenia) - parametr zostaje
powikszony o 1. Jeli zostal zastosowany jako operator
przedrostkowy, wowczas wynikiem jest inkrementowana warto
parametru, a jeli zostal zastosowany jako operator
przyrostkowy, to wynikiem jest pierwotna warto parametru.
-- podobnie do ++, tylko e wynikiem jest zmniejszenie
parametru o 1.
, Rozdziela dwa wyraenia arytmetyczne; lewa strona zostaje
wyliczona jako pierwsza, a nastpnie prawa strona.
Wynikiem jest warto wyraenia po prawej stronie.
= przyporzdkowanie; zmiennej po lewej zostaje nadana warto
po prawej.
*= /= %= += -= <<= >>= &= ^= |=
operatory przyporzdkowania; <var> <op>= <expr> jest tym
samym co <var> = <var> <op> ( <expr> ).
|| logiczna alternatywa; wynikiem jest 1 jeli przynajmniej
jeden z argumentow jest niezerowy, 0 gdy nie. Argument
po prawej zostaje wyliczony jedynie, gdy argument po
lewej jest zerowy.
&& logiczna koniunkcja; wynikiem jest 1 jeli obydwa
argumenty s niezerowe, 0 gdy nie. Prawy argument zostaje
wyliczony jedynie, gdy lewy jest niezerowy.
| arytmetyczna alternatywa (bit-w-bit).
^ arytmetyczne albo (bit-w-bit).
& arytmetyczna koniunkcja (bit-w-bit).
== rowno; wynikiem jest 1, jeli obydwa argumenty s sobie
rowne, 0 gdy nie.
!= nierowno; wynikiem jest 0, jeli obydwa argumenty s sobie
rowne, 1 gdy nie.
< mniejsze od; wynikiem jest 1, jeli lewy argument jest
mniejszy od prawego, 0 gdy nie.
<= >= >
mniejsze lub rowne, wiksze lub rowne, wiksze od. Patrz <.
<< >> przesu w lewo (prawo); wynikiem jest lewy argument z
bitami przesunitymi na lewo (prawo) o liczb pol podan w
prawym argumencie.
+ - * /
suma, ronica, iloczyn i iloraz.
% reszta; wynikiem jest reszta z dzielenia lewego argumentu
przez prawy. Znak wyniku jest nieustalony, jeli ktory z
argumentow jest ujemny.
<arg1> ? <arg2> : <arg3>
jeli <arg1> jest niezerowy, to wynikiem jest <arg2>, w
przeciwnym razie <arg3>.
Koprocesy
Koproces to potok stworzony poprzez operator |&, ktory jest procesem
asynchronicznym, do ktorego powloka moe zarowno pisa (uywajc print -p),
jak i czyta (uywajc read -p). Wejciem i wyjciem koprocesu mona rownie
manipulowa przy pomocy przekierowa >&p i odpowiednio <&p. Po
uruchomieniu koprocesu, nastpne nie mog by uruchomione dopoki dany
koproces nie zakoczy pracy lub dopoki wejcie koprocesu nie zostanie
przekierowane przez exec n>&p. Jeli wejcie koprocesu zostanie
przekierowane w ten sposob, to nastpny w kolejce do uruchomienia
koproces bdzie wspoldzielil wyjcie z pierwszym koprocesem, chyba e
wyjcie pierwszego koprocesu zostalo przekierowane przy pomocy exec
n<&p.
Pewne uwagi dotyczce koprocesow:
o jedyn moliwoci zamknicia wejcia koprocesu (tak aby koproces
wczytal zakoczenie pliku) jest przekierowanie wejcia na
numerowany deskryptor pliku, a nastpnie zamknicie tego
deskryptora (w szczegolnoci, exec 3>&p;exec 3>&-).
o aby koprocesy mogly wspoldzieli jedno wyjcie, powloka musi
zachowa otwart cz wpisow danego potoku wyjciowego. Oznacza to,
e zakoczenie pliku nie zostanie wykryte do czasu, a wszystkie
koprocesy wspoldzielce wyjcie zostan zakoczone (gdy zostan one
zakoczone, wowczas powloka zamyka swoj kopi potoku). Mona temu
zapobiec przekierowujc wyjcie na numerowany deskryptor pliku
(poniewa powoduje to rownie zamknicie przez powlok swojej
kopii). Prosz zwroci uwag, i to zachowanie jest nieco odmienne
od oryginalnej powloki Korna, ktora zamyka cz zapisow swojej
kopii wyjcia koprocesu, gdy ostatnio uruchomiony koproces
(zamiast gdy wszystkie wspoldzielce koprocesy) zostanie
zakoczony.
o print -p ignoruje sygnal SIGPIPE podczas zapisu, jeli dany
sygnal nie zostal przechwycony lub zignorowany; nie zachodzi to
jednak, gdy wejcie koprocesu zostalo powielone na inny
deskryptor pliku i stosowane jest print -un.
Funkcje
Funkcje definiuje si albo przy pomocy syntaktyki powloki Korna function
name, albo syntaktyki powloki Bourne'a/POSIX-owej: name() (patrz
poniej, co do ronic zachodzcych pomidzy tymi dwiema formami). Funkcje,
tak jak i .-skrypty, s wykonywane w biecym otoczeniu, aczkolwiek, w
przeciwiestwie do .-skryptow, argumenty powloki (tzn. argumenty
pozycyjne, $1, itd.) nigdy nie s widoczne wewntrz nich. Podczas
ustalania poloenia komendy, funkcje s przeszukiwane po przeszukaniu
specjalnych komend wbudowanych, za przed regularnymi oraz
nieregularnymi komendami wbudowanymi i przed przeszukaniem PATH.
Istniejca funkcja moe zosta usunita poprzez unset -f nazwa-funkcji.
List funkcji mona otrzyma poprzez typeset +f, a definicje funkcji mona
otrzyma poprzez typeset -f. autoload (co jest aliasem dla typeset -fu)
moe zosta uyte do tworzenia niezdefiniowanych funkcji. Jeli ma by
wykonana niezdefiniowana funkcja, wowczas powloka przeszukuje ciek
podan w parametrze FPATH szukajc pliku o nazwie identycznej z nazw
danej funkcji. Jeli plik taki zostanie odnaleziony, to bdzie wczytany i
wykonany. Jeli po wykonaniu tego pliku dana funkcja bdzie
zdefiniowana, wowczas zostanie ona wykonana, w przeciwnym razie
zostanie wykonane zwykle odnajdywanie komend (tzn., powloka przeszukuje
tablic zwyklych komend wbudowanych i PATH). Prosz zwroci uwag, e jeli
komenda nie zostanie odnaleziona na podstawie PATH, wowczas zostaje
podjta proba odnalezienia funkcji przez FPATH (jest to
nieudokumentowanym zachowaniem si oryginalnej powloki Korna).
Funkcje mog mie dwa atrybuty - ledzenia i eksportowania, ktore mog by
ustawiane przez typeset -ft i odpowiednio typeset -fx. Podczas
wykonywania funkcji ledzonej, opcja xtrace powloki zostaje wlczona na
czas danej funkcji, w przeciwnym razie opcja xtrace pozostaje wylczona.
Atrybut eksportowania nie jest obecnie uywany. W oryginalnej powloce
Korna, wyeksportowane funkcje s widoczne dla skryptow powloki, gdy s
one wykonywane.
Poniewa funkcje s wykonywane w obecnym kontekcie powloki,
przyporzdkowania parametrow wykonane wewntrz funkcji pozostaj widoczne
po zakoczeniu danej funkcji. Jeli jest to niepodane, wowczas komenda
typeset moe by zastosowana wewntrz funkcji do tworzenia lokalnych
parametrow. Prosz zwroci uwag, i w aden sposob nie mona ograniczy
widocznoci parametrow specjalnych (tzn. $$, $!).
Kodem wyjcia funkcji jest kod wyjcia ostatniej wykonanej w niej
komendy. Funkcj mona przerwa bezporednio przy pomocy komendy return;
mona to rownie zastosowa do jawnego okrelenia kodu wyjcia.
Funkcje zdefiniowane przy pomocy zarezerwowanego slowa function, s
traktowane odmiennie w nastpujcych punktach od funkcji zdefiniowanych
poprzez notacj ():
o parametr $0 zostaje ustawiony na nazw funkcji (funkcje w stylu
Bourne'a nie dotykaj $0).
o przyporzdkowania wartoci parametrom poprzedzajce wywolanie
funkcji nie zostaj zachowane w biecym kontekcie powloki
(wykonywanie funkcji w stylu Bourne'a zachowuje te
przyporzdkowania).
o OPTIND zostanie zachowany i skasowany na pocztku oraz nastpnie
odtworzony na zakoczenie funkcji, tak wic getopts moe by
poprawnie stosowane zarowno wewntrz funkcji, jak i poza nimi
(funkcje w stylu Bourne'a nie dotykaj OPTIND, tak wic stosowanie
getopts wewntrz funkcji jest niezgodne ze stosowaniem getopts
poza funkcjami).
W przyszloci zostan dodane rownie nastpujce ronice:
o Podczas wykonywania funkcji bdzie stosowany oddzielny kontekst
ledzenia/sygnalow. Tak wic ledzenia ustawione wewntrz funkcji
nie bd mialy wplywu na ledzenia i sygnaly powloki, nieignorowane
przez ni (ktore mog by przechwytywane), i bd mialy domylne ich
znaczenie wewntrz funkcji.
o ledzenie EXIT-a, jeli zostanie ustawione wewntrz funkcji,
zostanie wykonane po zakoczeniu funkcji.
Tryb POSIX-owy
Dana powloka ma by w zasadzie zgodna ze standardem POSIX, jednak, w
niektorych przypadkach, zachowanie zgodne ze standardem POSIX jest albo
sprzeczne z zachowaniem oryginalnej powloki Korna, albo z wygod
uytkownika. To, jak powloka zachowuje si w takich wypadkach, jest
ustalane stanem opcji posix (set -o posix) -- jeli jest ona wlczona, to
zachowuje si zgodnie z POSIX-em, a w przeciwnym razie - nie. Opcja
posix zostaje automatycznie ustawiona, jeli powloka startuje w
otoczeniu zawierajcym ustawiony parametr POSIXLY_CORRECT. (Powlok mona
rownie skompilowa tak, aby zachowanie zgodne z POSIX-em bylo domylnie
ustawione, ale jest to zwykle niepodane).
A oto lista wplywow ustawienia opcji posix:
o \" wewntrz cytowanych podwojnymi cudzyslowami `..` podstawie
komend: w trybie POSIX-owym, \" jest interpretowany podczas
interpretacji komendy; w trybie nie-POSIX-owym, odwrotny ukonik
zostaje usunity przed interpretacj podstawienia komendy. Na
przykladecho "`echo \"hi\"`" produkuje `"hi"' w trybie POSIX-
owym, `hi' a w trybie nie-POSIX-owym. W celu uniknicia
problemow, prosz stosowa posta $(...) podstawienia komend.
o wyjcie kill -l: w trybie POSIX-owym nazwy sygnalow s wymieniane
wiersz po wierszu; w nie-POSIX-owym trybie numery sygnalow, ich
nazwy i opis zostaj wymienione w kolumnach. W przyszloci
zostanie dodana nowa opcja (zapewne -v) w celu rozronienia tych
dwoch zachowa.
o kod wyjcia fg: w trybie POSIX-owym, kod wyjcia wynosi 0, jeli
nie wystpily adne bldy; w trybie nie-POSIX-owym, kod wyjcia
odpowiada kodowi ostatniego zadania wykonywanego w pierwszym
planie.
o kod wyjcia poleceniaeval: jeeli argumentem eval bdzie puste
polecenie (np.: eval "`false`"), to jego kodem wyjcia w trybie
POSIX-owym bdzie 0. W trybie nie-POSIX-owym, kodem wyjcia bdzie
kod wyjcia ostatniego podstawienia komendy, ktore zostalo
dokonane podczas przetwarzania argumentow polecenia eval (lub 0,
jeli nie bylo podstawie komend).
o getopts: w trybie POSIX-owym, opcje musz zaczyna si od -; w
trybie nie-POSIX-owym, opcje mog si zaczyna albo od -, albo od
+.
o rozwijanie nawiasow (zwane rownie przemian): w trybie POSIX-owym
rozwijanie nawiasow jest wylczone; w trybie nie-POSIX-owym
rozwijanie nawiasow jest wlczone. Prosz zauway, e set -o posix
(lub ustawienie parametru POSIXLY_CORRECT) automatycznie wylcza
opcj braceexpand, moe ona by jednak jawnie wlczona poniej.
o set -: w trybie POSIX-owym, nie wylcza to ani opcji verbose, ani
xtrace; w trybie nie-POSIX-owym, wylcza.
o kod wyjcia set: w trybie POSIX-owym, kod wyjcia wynosi 0, jeli
nie wystpily adne bldy; w trybie nie-POSIX-owym, kod wyjcia
odpowiada kodowi wszelkich podstawie komend wykonywanych podczas
generacji komendy set. Przykladowo, `set -- `false`; echo $?'
wypisuje 0 w trybie POSIX-owym, a 1 w trybie nie-POSIX-owym.
Taka konstrukcja stosowana jest w wikszoci skryptow powloki
stosujcych stary wariant komendy getopt(1).
o rozwijanie argumentow komend alias, export, readonly i typeset:
w trybie POSIX-owym, nastpuje normalne rozwijanie argumentow; w
trybie nie-POSIX-owym, rozdzielanie pol, dopasowywanie nazw
plikow, rozwijanie nawiasow i (zwykle) rozwijanie tyld s
wylczone, ale rozwijanie tyld w przyporzdkowaniach pozostaje
wlczone.
o specyfikacja sygnalow: w trybie POSIX-owym, sygnaly mog by
podawane jedynie cyframi, jeli numery sygnalow s zgodne z
wartociami z POSIX-a (tzn. HUP=1, INT=2, QUIT=3, ABRT=6, KILL=9,
ALRM=14 i TERM=15); w trybie nie-POSIX-owym, sygnaly zawsze mog
by podane cyframi.
o rozwijanie aliasow: w trybie POSIX-owym, rozwijanie aliasow
zostaje jedynie wykonywane, podczas wczytywania slow komend; w
trybie nie-POSIX-owym, rozwijanie aliasow zostaje wykonane
rownie na kadym slowie po jakim aliasie, ktore koczy si bial
przerw. Na przyklad nastpujca ptla for
alias a='for ' i='j'
a i in 1 2; do echo i=$i j=$j; done
uywa parametru i w trybie POSIX-owym, natomiast j w trybie nie-POSIX-
owym.
o test: w trybie POSIX-owym, wyraenie "-t" (poprzedzone pewn liczb
argumentow "!") zawsze jest prawdziwe, gdy jest cigiem o dlugoci
niezerowej; w nie-POSIX-owym trybie, sprawdza czy deskryptor
pliku 1 jest jakim tty (tzn., argument fd do testu -t moe zosta
pominity i jest domylnie rowny 1).
Wykonywanie komend
Po wyliczeniu argumentow wiersza komendy, wykonaniu przekierowa i
przyporzdkowa parametrow, zostaje ustalony typ komendy: specjalna
wbudowana, funkcja, regularna wbudowana lub nazwa pliku, ktory naley
wykona, znajdowanego przy pomocy parametru PATH. Testy te zostaj
wykonane w wyej podanym porzdku. Specjalne wbudowane komendy roni si
tym od innych komend, e do ich odnalezienia nie jest uywany parametr
PATH, bld podczas ich wykonywania moe spowodowa zakoczenie powloki
nieinterakcyjnej i przyporzdkowania wartoci parametrow poprzedzajce
komend zostaj zachowane po jej wykonaniu. Aby tylko wprowadzi
zamieszanie, jeli opcja posix zostala wlczona (patrz komenda set
poniej), to pewne specjale komendy staj si bardzo specjalne, gdy nie
jest wykonywane rozdzielanie pol, rozwijanie nazw plikow, rozwijanie
nawiasow, ani rozwijanie tyld na argumentach, ktore wygldaj jak
przyporzdkowania. Zwykle wbudowane komendy wyroniaj si jedynie tym, e
do ich odnalezienia nie jest stosowany parametr PATH.
Oryginalny ksh i POSIX roni si nieco w tym, jakie komendy s traktowane
jako specjalne, a jakie jako zwykle:
Specjalne polecenia w POSIX
. continue exit return trap
: eval export set unset
break exec readonly shift
Dodatkowe specjalne komendy w ksh
builtin times typeset
Bardzo specjalne komendy (tryb nie-POSIX-owy)
alias readonly set typeset
Regularne komendy w POSIX
alias command fg kill umask
bg false getopts read unalias
cd fc jobs true wait
Dodatkowe regularne komendy ksh
[ let pwd ulimit
echo print test whence
W przyszloci dodatkowe specjalne komendy oraz regularne komendy ksh mog
by traktowane odmiennie od specjalnych i regularnych komand POSIX.
Po ustaleniu typu komendy, wszelkie przyporzdkowania wartoci parametrow
zostaj wykonane i wyeksportowane na czas trwania komendy.
Poniej opisujemy specjalne i regularne polecenia wbudowane:
. plik [arg1 ...]
Wykonaj komendy z pliku w biecym otoczeniu. Plik zostaje
odszukiwany przy uyciu katalogow z PATH. Jeli zostaly podane
argumenty, to parametry pozycyjne mog by uywane w celu uzyskania
dostpu do nich podczas wykonywania pliku. Jeeli nie zostaly
podane adne argumenty, to argumenty pozycyjne odpowiadaj tym z
biecego otoczenia, w ktorym dana komenda zostala uyta.
: [ ... ]
Komenda zerowa. Kodem wyjcia jest zero.
alias [ -d | +-t [-r] ] [+-px] [+-] [name1[=value1] ...]
Bez argumentow, alias wywietla wszystkie obecne aliasy. Dla
kadej nazwy bez podanej wartoci zostaje wywietlony istniejcy
odpowiedni alias. Kada nazwa z podan wartoci definiuje alias
(patrz: "Aliasy" powyej).
Do wywietlania aliasow uywany jest jeden z dwoch formatow:
zwykle aliasy s wywietlane jako nazwa=warto, przy czym warto
jest cytowana; jeli opcje mialy przedrostek + lub samo + zostalo
podane we wierszu komendy, tylko nazwa zostaje wywietlona.
Ponadto, jeli zostala zastosowana opcja -p, to dodatkowo kady
wiersz zaczyna si od cigu "alias ".
Opcja -x ustawia (a +x kasuje) atrybut eksportu dla aliasu, lub
jeli nie podano adnych nazw, wywietla aliasy wraz z ich
atrybutem eksportu (eksportowanie aliasu nie ma ma adnego
efektu).
Opcja -t wskazuje, e ledzone aliasy maj by wywietlone/ustawione
(wartoci podane w wierszu komendy zostaj zignorowane dla
ledzonych aliasow). Opcja -r wskazuje, e wszystkie ledzone
aliasy maj zosta usunite.
Opcja -d nakazuje wywietlenie lub ustawienie aliasow katalogow,
ktore s stosowane w rozwiniciach tyld (patrz: "Rozwinicia tyld"
powyej).
bg [job ...]
Podejmij ponownie wymienione zatrzymane zadanie(-a) w tle. Jeli
nie podano adnego zadania, to przyjmuje si domylnie %+. Ta
komenda jest dostpna jedynie w systemach obslugujcych kontrol
zada. Dalsze informacje mona znale poniej w rozdziale "Kontrola
zada".
bind [-m] [klawisz[=komenda-edycji] ...]
Ustawienie lub wyliczenie obecnych przyporzdkowa klawiszy/makr w
emacsowym trybie edycji komend. Patrz "Interakcyjna edycja
wiersza polece w trybie emacs" w celu pelnego opisu.
break [poziom]
break przerywa poziom zagniedenia w ptlach for, select, until
lub while. Domylnie poziom wynosi 1.
builtin komenda [arg1 ...]
Wykonuje wbudowan komend komenda.
cd [-LP] [katalog]
Ustawia aktualny katalog roboczy na katalog. Jeli zostal
ustawiony parametr CDPATH, to wypisuje list katalogow, w ktorych
bdzie szuka katalogu. Pusta zawarto w CDPATH oznacza katalog
biecy. Jeli zostanie uyty niepusty katalog z CDPATH, to na
standardowym wyjciu bdzie wywietlona jego pelna cieka. Jeli nie
podano katalogu, to zostanie uyty katalog domowy $HOME. Jeli
katalogiem jest -, to zostanie zastosowany poprzedni katalog
roboczy (patrz parametr OLDPWD). Jeli uyto opcji -L (cieka
logiczna) lub jeli nie zostala ustawiona opcja physical (patrz
komenda set poniej), wowczas odniesienia do .. w katalogu s
wzgldne wobec cieki zastosowanej do dojcia do danego katalogu.
Jeli podano opcj -P (fizyczna cieka) lub gdy zostala ustawiona
opcja physical, to .. jest wzgldne wobec drzewa katalogow
systemu plikow. Parametry PWD i OLDPWD zostaj uaktualnione tak,
aby odpowiednio zawieraly biecy i poprzedni katalog roboczy.
cd [-LP] stary nowy
Cig nowy zostaje podstawiony w zamian za stary w biecym katalogu
i powloka probuje przej do nowego katalogu.
command [-pvV] komenda [arg1 ...]
Jeli nie zostala podana opcja -v ani opcja -V, to komenda
zostaje wykonana dokladnie tak, jakby nie podano command, z
dwoma wyjtkami: po pierwsze, komenda nie moe by funkcj w
powloce, oraz po drugie, specjalne wbudowane komendy trac swoj
specjalno (tzn. przekierowania i bldy w uyciu nie powoduj, e
powloka zostaje zakoczona, a przyporzdkowania parametrow nie
zostaj wykonane). Jeli podano opcj -p, zostaje zastosowana
pewna domylna cieka zamiast obecnej wartoci PATH (warto domylna
cieki jest zalena od systemu, w jakim pracujemy: w systemach
POSIX-owych jest to warto zwracana przez
getconf CS_PATH
).
Jeli podano opcj -v, to zamiast wykonania polecenia komenda,
zostaje podana informacja, co by zostalo wykonane (i to samo
dotyczy rownie arg1 ...): dla specjalnych i zwyklych wbudowanych
komend i funkcji, zostaj po prostu wywietlone ich nazwy, dla
aliasow, zostaje wywietlona komenda definiujca dany alias, oraz
dla komend odnajdowanych przez przeszukiwanie zawartoci
parametru PATH, zostaje wywietlona pelna cieka danej komendy.
Jeli komenda nie zostanie odnaleziona, (tzn. przeszukiwanie
cieki nie powiedzie si), nic nie zostaje wywietlone i command
zostaje zakoczone z niezerowym kodem wyjcia. Opcja -V jest
podobna do opcji -v, tylko e bardziej gadatliwa.
continue [poziom]
continue skacze na pocztek poziomu z najglbiej zagniedonej ptli
for, select, until lub while. level domylnie 1.
echo [-neE] [arg ...]
Wywietla na standardowym wyjciu swoje argumenty (rozdzielone
spacjami), zakoczone przelamaniem wiersza. Przelamanie wiersza
nie nastpuje, jeli ktorykolwiek z parametrow zawiera sekwencj
odwrotnego ukonika \c. Patrz komenda print poniej, co do listy
innych rozpoznawanych sekwencji odwrotnych ukonikow.
Nastpujce opcje zostaly dodane dla zachowania zgodnoci ze
skryptami z systemow BSD: -n wylcza kocowe przelamanie wiersza,
-e wlcza interpretacj odwrotnych ukonikow (operacja zerowa,
albowiem ma to domylnie miejsce) oraz -E wylczajce interpretacj
odwrotnych ukonikow.
eval komenda ...
Argumenty zostaj powizane (z przerwami pomidzy nimi) do jednego
cigu, ktory nastpnie powloka rozpoznaje i wykonuje w obecnym
otoczeniu.
exec [komenda [arg ...]]
Komenda zostaje wykonana bez rozwidlania (fork), zastpujc proces
powloki.
Jeli nie podano adnych argumentow wszelkie przekierowania
wejcia/wyjcia s dozwolone i powloka nie zostaje zastpiona.
Wszelkie deskryptory plikow wiksze ni 2 otwarte lub
zdup(2)-owane w ten sposob nie s dostpne dla innych wykonywanych
komend (tzn., komend nie wbudowanych w powlok). Zauwa, e
powloka Bourne'a roni si w tym: przekazuje bowiem deskryptory
plikow.
exit [kod]
Powloka zostaje zakoczona z podanym kodem wyjcia. Jeli kod nie
zostal podany, wowczas kod wyjcia przyjmuje biec warto parametru
?.
export [-p] [parametr[=warto]] ...
Ustawia atrybut eksportu danego parametru. Eksportowane
parametry zostaj przekazywane w otoczeniu do wykonywanych
komend. Jeli podano wartoci, to zostaj one rownie
przyporzdkowane danym parametrom.
Jeli nie podano adnych parametrow, wowczas nazwy wszystkich
parametrow z atrybutem eksportu zostaj wywietlone wiersz po
wierszu, chyba e uyto opcji -p, wtedy zostaj wywietlone komendy
export definiujce wszystkie eksportowane parametry wraz z ich
wartociami.
false Komenda koczca si z niezerowym kodem powrotu.
fc [-e edytor | -l [-n]] [-r] [pierwszy [ostatni]]
pierwszy i ostatni wybieraj komendy z historii. Komendy moemy
wybiera przy pomocy ich numeru w historii lub podajc cig znakow
okrelajcy ostatnio uyt komend rozpoczynajc si od tego cigu.
Opcja -l wywietla dan komend na stdout, a -n wylcza domylne
numery komend. Opcja -r odwraca kolejno komend w licie
historii. Bez -l, wybrane komendy podlegaj edycji przez edytor
podany poprzez opcj -e, albo jeli nie podano -e, przez edytor
podany w parametrze FCEDIT (jeli nie zostal ustawiony ten
parametr, wowczas stosuje si /bin/ed), i nastpnie wykonana przez
powlok.
fc [-e - | -s] [-g] [stare=nowe] [prefiks]
Wykonuje ponownie wybran komend (domylnie poprzedni komend) po
wykonaniu opcjonalnej zamiany stare na nowe. Jeli podano -g,
wowczas wszelkie wystpienia stare zostaj zastpione przez nowe. Z
tej komendy korzysta si zwykle przy pomocy zdefiniowanego
domylnie aliasu r='fc -e -'.
fg [zadanie ...]
Przywraca na pierwszy plan zadanie(-nia). Jeli nie podano
jawnie adnego zadania, wowczas odnosi si to domylnie do %+. Ta
komenda jest jedynie dostpna na systemach wspomagajcych kontrol
zada. Patrz "Kontrola zada" dla dalszych informacji.
getopts cigopt nazwa [arg ...]
getopts jest stosowany przez procedury powloki do rozpoznawania
podanych argumentow (lub parametrow pozycyjnych, jeli nie podano
adnych argumentow) i do sprawdzenia zasadnoci opcji. cigopt
zawiera litery opcji, ktore getopts ma rozpoznawa. Jeli po
literze wystpuje przecinek, wowczas oczekuje si, e opcja ma
argument. Opcje niemajce argumentow mog by grupowane w jeden
argument. Jeli opcja oczekuje argumentu i znak opcji nie jest
ostatnim znakiem argumentu, w ktorym si znajduje, wowczas reszta
argumentu zostaje potraktowana jako argument danej opcji. W
przeciwnym razie nastpny argument jest argumentem opcji.
Za kadym razem, gdy zostaje wywolane getopts, umieszcza si
nastpn opcj w parametrze powloki nazwa i indeks nastpnego
argumentu pod obrobk w parametrze powloki OPTIND. Jeli opcja
zostala podana z +, to opcja zostaje umieszczana w nazwa z
przedrostkiem +. Jeli opcja wymaga argumentu, to getopts
umieszcza go w parametrze powloki OPTARG. Jeli natrafi si na
niedopuszczaln opcj lub brakuje argumentu opcji, wowczas w nazwa
zostaje umieszczony znak zapytania albo dwukropek (wskazujc na
nielegaln opcj, albo odpowiednio brak argumentu) i OPTARG
zostaje ustawiony na znak, ktory byl przyczyn tego problemu.
Ponadto zostaje wowczas wywietlony komunikat o bldzie na
standardowym wyjciu bldow, jeli cigopt nie zaczyna si od
dwukropka.
Gdy napotkamy na koniec opcji, getopts przerywa prac niezerowym
kodem wyjcia. Opcje kocz si na pierwszym (nie podlegajcym
opcji) argumencie, ktory nie rozpoczyna si od -, albo jeli
natrafimy na argument --.
Rozpoznawanie opcji moe zosta ponowione ustawiajc OPTIND na 1
(co nastpuje automatycznie za kadym razem, gdy powloka lub
funkcja w powloce zostaje wywolana).
Ostrzeenie: Zmiana wartoci parametru powloki OPTIND na warto
wiksz ni 1, lub rozpoznawanie odmiennych zestawow parametrow bez
ponowienia OPTIND moe doprowadzi do nieoczekiwanych wynikow.
hash [-r] [nazwa ...]
Jeli brak argumentow, wowczas wszystkie cieki wykonywalnych
komend z kluczem s wymieniane. Opcja -r nakazuje wyrzucenia
wszelkim komend z kluczem z tablicy kluczy. Kada nazwa zostaje
odszukiwana tak, jak by to byla nazwa komendy i dodana do
tablicy kluczy jeli jest to wykonywalna komenda.
jobs [-lpn] [zadanie ...]
Wywietl informacje o danych zadaniach; gdy nie podano adnych
zada wszystkie zadania zostaj wywietlone. Jeli podano opcj -n,
wowczas informacje zostaj wywietlone jedynie o zadaniach,
ktorych stan zmienil si od czasu ostatniego powiadomienia.
Zastosowanie opcji -l powoduje dodatkowo wykazanie
identyfikatora kadego procesu w zadaniach. Opcja -p powoduje, e
zostaje wywietlona jedynie jedynie grupa procesowa kadego
zadania. patrz "Kontrola zada" dla informacji o formie
parametru zdanie i formacie, w ktorym zostaj wykazywane zadania.
kill [-s nazsyg | -numsyg | -nazsyg ] { job | pid | -pgrp } ...
Wylij dany sygnal do danych zada, procesow z danym id, lub grup
procesow. Jeli nie podano jawnie adnego sygnalu, wowczas
domylnie zostaje wyslany sygnal TERM. Jeli podano zadanie,
wowczas sygnal zostaje wyslany do grupy procesow danego zadania.
Patrz poniej "Kontrola zada" dla informacji o formacie zadania.
kill -l [kod_wyjcia ...]
Wypisz nazw sygnalu, ktory zabil procesy, ktore zakoczyly si
danym kodem_wyjcia. Jeli brak argumentow, wowczas zostaje
wywietlona lista wszelkich sygnalow i ich numerow, wraz z
krotkim ich opisem.
let [wyraenie ...]
Kade wyraenie zostaje wyliczone, patrz "Wyraenia arytmetyczne"
powyej. Jeli wszelkie wyraenia zostaly poprawnie wyliczone,
kodem wyjcia jest 0 (1), jeli wartoci ostatniego wyraenia
nie bylo zero (zero). Jeli wystpi bld podczas rozpoznawania
lub wyliczania wyraenia, kod wyjcia jest wikszy od 1. Poniewa
moe zaj konieczno wycytowania wyrae, wic (( wyr. )) jest
syntaktycznie slodszym wariantem let "wyr".
print [-nprsun | -R [-en]] [argument ...]
Print wywietla swe argumenty na standardowym wyjciu, rozdzielone
przerwami i zakoczone przelamaniem wiersza. Opcja -n zapobiega
domylnemu przelamaniu wiersza. Domylnie pewne wyprowadzenia z C
zostaj odpowiednio przetlumaczone. Wrod nich mamy \b, \f, \n,
\r, \t, \v, i \0### (# oznacza cyfr w systemie osemkowym, tzn.
od 0 po 3). \c jest rownowane z zastosowaniem opcji -n. \
wyraeniom mona zapobiec przy pomocy opcji -r. Opcja -s powoduje
wypis do pliku historii zamiast standardowego wyjcia, a opcja -u
powoduje wypis do deskryptora pliku n (n wynosi domylnie 1 przy
pominiciu), natomiast opcja -p pisze do do koprocesu (patrz
"Koprocesy" powyej).
Opcja -R jest stosowana do emulacji, w pewnym stopniu, komendy
echo w wydaniu BSD, ktora nie przetwarza sekwencji \ bez podania
opcji -e. Jak powyej opcja -n zapobiega kocowemu przelamaniu
wiersza.
pwd [-LP]
Wypisz biecy katalog roboczy. Przy zastosowaniu opcji -L lub
gdy nie zostala ustawiona opcja physical (patrz komenda set
poniej), zostaje wywietlona cieka logiczna (tzn. cieka konieczna
aby wykona cd do biecego katalogu). Przy zastosowaniu opcji -P
(cieka fizyczna) lub gdy zostala ustawiona opcja physical,
zostaje wywietlona cieka ustalona przez system plikow (ledzc
katalogi .. a po katalog glowny).
read [-prsun] [parametr ...]
Wczytuje wiersz wprowadzenia ze standardowego wejcia, rozdziela
ten wiersz na pola przy uwzgldnieniu parametru IFS ( patrz
"Podstawienia" powyej) i przyporzdkowuje pola odpowiednio danym
parametrom. Jeli mamy wicej parametrow ni pol, wowczas
dodatkowe parametry zostaj ustawione na zero, a natomiast jeli
jest wicej pol ni paramterow to ostatni parametr otrzymuje jako
warto wszystkie dodatkowe pola (wraz ze wszelkimi rozdzielajcymi
przerwami). Jeli nie podano adnych parametrow, wowczas zostaje
zastosowany parametr REPLY. Jeli wiersz wprowadzania koczy si
odwrotnym ukonikiem i nie podano opcji -r, to odwrotny ukonik i
przelamanie wiersza zostaj usunite i zostaje wczytana dalsza cz
danych. Gdy nie zostanie wczytane adne wprowadzenie, read koczy
si niezerowym kodem wyjcia.
Pierwszy parametr moe mie dolczony znak zapytania i cig, co
oznacza, e dany cig zostanie zastosowany jako zachta do
wprowadzenia (wywietlana na standardowym wyjciu bldow zanim
zostanie wczytane jakiekolwiek wprowadzenie) jeli wejcie jest
terminalem (e.g., read nco?'ile cok'ow: ').
Opcje -un i -ppowoduj, e wprowadzenia zostanie wczytywane z
deskryptora pliku n albo odpowiednio biecego koprocesu (patrz
komentarze na ten temat w "Koprocesy" powyej). Jeli zastosowano
opcj -s, wowczas wprowadzenie zostaje zachowane w pliku
historii.
readonly [-p] [parametr[=warto]] ...
Patrz parametr wylcznego odczytu nazwanych parametrow. Jeli
zostaly podane wartoci wowczas zostaj one nadane parametrom
przed ustawieniem danego atrybutu. Po nadaniu cechy wylcznego
odczytu parametrowi, nie ma wicej moliwoci wykasowania go lub
zmiany jego wartoci.
Jeli nie podano adnych parametrow, wowczas zostaj wypisane nazwy
wszystkich parametrow w cech wylcznego odczytu wiersz po
wierszu, chyba e zastosowano opcj -p, co powoduje wypisanie
pelnych komend readonly definiujcych parametry wylcznego odczytu
wraz z ich wartociami.
return [kod]
Powrot z funkcji lub . skryptu, z kodem wyjcia kod. Jeli nie
podano wartoci kod, wowczas zostaje domylnie zastosowany kod
wyjcia ostatnio wykonanej komendy. Przy zastosowaniu poza
funkcj lub . skryptem, komenda ta ma ten sam efekt co exit.
Prosz zwroci uwag, i pdksh traktuje zarowno profile jak i pliki
z $ENV jako . skrypty, podczas gdy oryginalny Korn shell jedynie
profile traktuje jako . skrypty.
set [+-abCefhkmnpsuvxX] [+-o [opcja]] [+-A nazwa] [--] [arg ...]
Komenda set sluy do ustawiania (-) albo kasowania (+) opcji
powloki, ustawiania parametrow pozycyjnych lub ustawiania
parametru cigowego. Opcje mog by zmienione przy pomocy
syntaktyki +-o opcja, gdzie opcja jest peln nazw pewnej opcji
lub stosujc posta +-litera, gdzie litera oznacza jednoliterow
nazw danej opcji (niewszystkie opcje posiadaj jednoliterow
nazw). Nastpujca tablica wylicza zarowno litery opcji (gdy mamy
takowe), jak i pelne ich nazwy wraz z opisem wplywow danej
opcji.
-A Ustawia elementy parametru
cigowego nazwa na arg ...;
Jeli zastosowano -A, cig
zostaje uprzednio ponowiony
(tzn., wyczyszczony); Jeli
zastosowano +A, zastaj
ustawione pierwsze N elementow
(gdzie N jest iloci argsow),
reszta pozostaje niezmieniona.
-a allexport wszystkie nowe parametry
zostaj tworzone z cech
eksportowania
-b notify Wypisuj komunikaty o zadaniach
asynchronicznie, zamiast tu
przed zacht. Ma tylko
znaczenia jeli zostala wlczona
kontrola zada (-m).
-C noclobber Zapobiegaj przepisywaniu
istniejcych ju plikow poprzez
przekierowania > (do
wymuszenia przepisania musi
zosta zastosowane >|).
-e errexit Wyjd (po wykonaniu komendy
pulapki ERR) tu po wystpieniu
bldu lub niepomylnym wykonaniu
jakiej komendy (tzn., jeli
zostala ona zakoczona
niezerowym kodem wyjcia). Nie
dotyczy to komend, ktorych kod
wyjcia zostaje jawnie
przetestowany konstruktem
powloki takim jak wyraenia if,
until, while, && lub ||.
-f noglob Nie rozwijaj wzorcow nazw
plikow.
-h trackall Tworz ledzone aliasy dla
wszystkich wykonywanych komend
(patrz "Aliasy" powyej).
Domylnie wlczone dla
nieinterakcyjnych powlok.
-i interactive Wlcz tryb interakcyjny - moe
zosta wlczone/wylczone jedynie
podczas odpalania powloki.
-k keyword Przyporzdkowania wartoci
parametrom zostaj rozpoznawane
gdziekolwiek w komendzie.
-l login Powloka ma by powlok
zameldowania - moe zosta
wlczone/wylczone jedynie
podczas odpalania powloki
(patrz "Uruchamianie powloki"
powyej).
-m monitor Wlcz kontrol zada (domylne dla
powlok interakcyjnych).
-n noexec Nie wykonuj jakichkolwiek
komend - przydatne do
sprawdzania syntaktyki
skryptow (ignorowane dla
interakcyjnych powlok).
-p privileged Ustawiane automatycznie, jeli
gdy powloka zostaje odpalona i
rzeczywiste uid lub gid nie
jest identyczne z odpowiednio
efektywnym uid lub gid. Patrz
"Uruchamianie powloki" powyej
dla opisu, co to znaczy.
-r restricted Ustaw tryb ograniczony -- ta
opcja moe zosta jedynie
zastosowana podczas odpalania
powloki. Patrz "Uruchamianie
powloki" dla opisu, co to
znaczy.
-s stdin Gdy zostanie zastosowane
podczas odpalania powloki,
wowczas komendy zostaj
wczytywane ze standardowego
wejcia. Ustawione
automatycznie, jeli powloka
zostala odpalona bez
jakichkolwiek argumentow.
Jeli -s zostaje zastosowane w
komendzie set, wowczas podane
argumenty zostaj uporzdkowane
zanim zostan one przydzielone
parametrom pozycyjnym (lub
cigowi nazwa, jeli -A zostalo
zastosowane).
-u nounset Odniesienie do nieustawionego
parametru zostaje traktowane
jako bld, chyba e zostal
zastosowany jeden z
modyfikatorow -, + lub =.
-v verbose Wypisuj wprowadzenia powloki
na standardowym wyjciu bldow
podczas ich wczytywania.
-x xtrace Wypisuj komendy i
przyporzdkowania parametrow
podczas ich wykonywania
poprzedzone wartoci PS4.
-X markdirs Podczas generowania nazw
plikow oznaczaj katalogi
koczcym /.
bgnice Zadania w tle zostaj
wykonywane z niszym
priorytetem.
braceexpand Wlcz rozwijanie nawiasow (aka,
alternacja).
emacs Wlcz edycj wiersza komendy w
stylu BRL emacsa (dotyczy
wylcznie powlok
interakcyjnych); patrz
"Interakcyjna edycja wiersza
polece w trybie emacs".
gmacs Wlcz edycj wiersza komendy w
stylu gmacsa (Gosling emacs)
(dotyczy wylcznie powlok
interakcyjnych); obecnie
identyczne z trybem edycji
emacs z wyjtkiem tego, e
przemiana (^T) zachowuje si
nieco inaczej.
ignoreeof Powloka nie zostanie zakoczona
jeli zostanie wczytany znak
zakoczenia pliku. Naley uy
jawnie exit.
nohup Nie zabijaj biecych zada
sygnalem HUP gdy powloka
zameldowania zostaje
zakoczona. Obecnie ustawione
domylnie, co si jednak zmieni
w przyszloci w celu
poprawienia kompatybilnoci z
oryginalnym Korn shell (ktory
nie posiada tej opcji,
aczkolwiek wysyla sygnal HUP).
nolog Bez znaczenia - w oryginalnej
powloce Korn. Zapobiega
sortowaniu definicji funkcji w
pliku historii.
physical Powoduje, e komendy cd oraz
pwd stosuj `fizyczne' (tzn.
pochodzce od systemu plikow)
.. katalogi zamiast
`logicznych' katalogow (tzn.,
e powloka interpretuje .., co
pozwala uytkownikowi nie
troszczy si o dowizania
symboliczne do katalogow).
Domylnie wykasowane. Prosz
zwroci uwag, i ustawianie tej
opcji nie wplywa na biec warto
parametru PWD; jedynie komenda
cd zmienia PWD. Patrz komendy
cd i pwd powyej dla dalszych
szczegolow.
posix Wlcz tryb POSIX-owy. Patrz:
"Tryb POSIX" powyej.
vi Wlcz edycj wiersza komendy w
stylu vi (dotyczy tylko powlok
interakcyjnych).
viraw Bez znaczenia - w oryginalnej
powloce Korna, dopoki nie
zostalo ustawione viraw, tryb
wiersza komendy vi pozostawial
prac napdowi tty a do
wprowadzenia ESC (^[). pdksh
jest zawsze w trybie viraw.
vi-esccomplete W trybie edycji wiersza
komendy vi wykonuj rozwijania
komend / plikow gdy zostanie
wprowadzone escape (^[) w
trybie komendy.
vi-show8 Dodaj przedrostek `M-' dla
znakow z ustawionym osmym
bitem. Jeli nie zostanie
ustawiona ta opcja, wowczas,
znaki z zakresu 128-160 zostaj
wypisane bez zmian, co moe by
przyczyn problemow.
vi-tabcomplete W trybie edycji wiersza
komendy vi wykonuj rozwijania
komend/ plikow jeli tab (^I)
zostanie wprowadzone w trybie
wprowadzania.
Tych opcji mona uy rownie podczas odpalania powloki. Obecny
zestaw opcji (z jednoliterowymi nazwami) znajduje si w
parametrze -. set -o bez podania nazwy opcji wywietla wszystkie
opcja i informacj o ich ustawieniu lub nie; set +o wypisuje
pelne nazwy opcji obecnie wlczonych.
Pozostale argumenty, jeli podano takowe, s traktowane jako
parametry pozycyjne i zostaj przyporzdkowane, przy zachowaniu
kolejnoci, parametrom pozycyjnym (tzn., 1, 2, itd.). Jeli opcje
kocz si -- i brak dalszych argumentow, wowczas wszystkie
parametry pozycyjne zostaj wyczyszczone. Jeli nie podano adnych
opcji lub argumentow, wowczas zostaj wywietlone wartoci
wszystkich nazw. Z nieznanych historycznych powodow, samotna
opcja - zostaje traktowana specjalnie: kasuje zarowno opcj -x,
jak i -v.
shift [liczba]
Parametry pozycyjne liczba+1, liczba+2 itd. zostaj przeniesione
pod 1, 2, itd. liczba wynosi domylnie 1.
test wyraenie
[ wyraenie ]
test wylicza wyraenia i zwraca kod wyjcia zero jeli prawda, i
kod 1 jeden jeli falsz, a wicej ni 1 jeli wystpil bld. Zostaje
zwykle zastosowane jako komenda warunkowa wyrae if i while.
Mamy do dyspozycji nastpujce podstawowe wyraenia:
cig cig ma niezerow dlugo.
Prosz zwroci uwag, i mog
wystpi trudnoci jeli cig
okae si by operatorem
(dok/ladniej, -r) - ogolnie
lepiej jest zamiast tego
stosowa test postaci
[ X"ciag" != X
]
(podwojne wycytowania
zostaj zastosowane
jeli cig zawiera
przerwy lub znaki
rozwijania plikow).
-r plik plik istnieje i jest
czytelny
-w plik plik istnieje i jest
zapisywalny
-x plik plik istnieje i jest
wykonywalny
-a plik plik istnieje
-e plik plik istnieje
-f plik plik jest zwyklym plikiem
-d plik plik jest katalogiem
-c plik plik jest specjalnym plikiem
napdu cigowego
-b plik plik jest specjalnym plikiem
napdu blokowego
-p plik plik jest potokiem nazwanym
-u plik plik o ustawionym bicie
setuid
-g plik plik' o ustawionym bicie
setgid
-k plik plik o ustawionym bicie
lepkoci
-s plik plik nie jest pusty
-O plik wlaciciel pliku zgadza si z
efektywnym user-id powloki
-G plik grupa pliku zgadza si z
efektywn group-id powloki
-h plik plik jest symbolicznym [WK:
twardym?] dowizaniem
-H plik plik jest zalenym od
kontekstu katalogiem (tylko
sensowne pod HP-UX)
-L plik plik jest symbolicznym
dowizaniem
-S plik plik jest gniazdem
-o opcja Opcja powloki jest ustawiona
(patrz komenda set powyej
dla listy moliwych opcji).
Jako niestandardowe
rozszerzenie, jeli opcja
zaczyna si od !, to wynik
testu zostaje negowany; test
wypada zawsze negatywnie gdy
dana opcja nie istnieje (tak
wic
[ -o co -o -o
!co ]
zwraca prawd tylko i
tylko wtedy, gdy
opcja co istnieje).
plik -nt plik pierwszy plik jest nowszy od
nastpnego pliku
plik -ot plik pierwszy plik jest starszy
od nastpnego pliku
plik -ef plik pierwszy plik jest tosamy z
drugim plikiem
-t [fd] Deskryptor pliku jest
przyrzdem tty. Jeli nie
zostala ustawiona opcja
posix (set -o posix, patrz
"Tryb POSIX" powyej),
wowczas fd moe zosta
pominity, co oznacza
przyjcie domylnej wartoci 1
(zachowanie si jest wowczas
odmienne z powodu
specjalnych regul POSIX-a
opisywanych powyej).
cig cig jest niepusty
-z cig cig jest pusty
-n cig cig jest niepusty
cig = cig cigi s sobie rowne
cig == cig cigi s sobie rowne
cig != cig cigi si roni
liczba -eq liczba liczby s rowne
liczba -ne liczba liczby roni si
liczba -ge liczba liczba jest wiksza lub rowna
od drugiej
liczba -gt liczba liczba jest wiksza od
drugiej
liczba -le liczba liczba jest mniejsza lub
rowna od drugiej
liczba -lt liczba liczba jest mniejsza od
drugiej
Powysze podstawowe wyraenie, w ktorych unarne operatory maj
pierwszestwo przed operatorami binarnymi, mog by stosowane w
polczeniu z nastpujcymi operatorami (wymienionymi w kolejnoci
odpowiadajcej ich pierwszestwu):
wyraenie -o wyraenie logiczne lub
wyraenie -a wyraenie logiczne i
! wyraenie logiczna negacja
( wyraenie ) grupowanie
W systemie operacyjny niewspomagajcy napdow /dev/fd/n (gdzie n
jest numerem deskryptora pliku), komenda test stara si je
emulowa dla wszystkich testow operujcych na plikach (z wyjtkiem
testu -e). W szczegolnoci., [ -w /dev/fd/2 ] sprawdza czy jest
dostpny zapis na deskryptor pliku 2.
Prosz zwroci uwag, e zachodz specjalne reguly (zawdziczane ),
jeli liczba argumentow do test lub [ ... ] jest mniejsza od
piciu: jeli pierwsze argumenty ! mog zosta pominite, tak e
pozostaje tylko jeden argument, wowczas zostaje przeprowadzony
test dlugoci cigu (ponownie, nawet jeli dany argument jest
unarnym operatorem); jeli pierwsze argumenty ! mog zosta
pominite tak, e pozostaj trzy argumenty i drugi argument jest
operatorem binarnym, wowczas zostaje wykonana dana binarna
operacja (nawet jeli pierwszy argument jest unarnym operatorem
operator, wraz z nieusunitym !).
Uwaga: Czstym bldem jest stosowanie if [ $co = tam ], co daje
wynik negatywny jeli parametr co jest zerowy lub nieustawiony,
zawiera przerwy (tzn., znaki z IFS), lub gdy jest operatorem
jednoargumentowym, takim jak ! lub -n. Prosz zamiast tego
stosowa testy typu if [ "X$co" = Xtam ].
times Wywietla zgromadzony czas w przestrzeni uytkownika oraz systemu,
ktory potrzebowala powloka i w niej wystartowane procesy, ktore
si zakoczyly.
trap [obrabiacz sygna/l ...]
Ustawia obrabiacz, ktory naley wykona w razie odebrania danego
sygnalu. Obrabiacz moe by albo zerowym cigiem, wskazujcym na
zamiar ignorowania sygnalow danego typu, albo minusem (-),
wskazujcym, e ma zosta podjta akcja domylna dla danego sygnalu
(patrz signal(2 lub 3)), albo cigiem zawierajcym komendy powloki
ktore maj zosta wyliczone i wykonane przy pierwszej okazji (tzn.
po zakoczeniu biecej komendy lub przed wypisaniem nastpnego
symboli zachty PS1) po odebraniu jednego z danych sygnalow.
Signal jest nazw danego sygnalu (tak jak np., PIPE lub ALRM) lub
jego numerem (patrz komenda kill -l powyej). Istniej dwa
specjalne sygnaly: EXIT (rownie znany jako 0), ktory zostaje
wykonany tu przed zakoczeniem powloki, i ERR ktory zostaje
wykonany po wystpieniu bldu (bldem jest co, co powodowaloby
zakoczenie powloki jeli zostaly ustawione opcje -e lub errexit
-- patrz komendy set powyej). Obrabiacze EXIT zostaj wykonane w
otoczeniu ostatniej wykonywanej komendy. Prosz zwroci uwag, e
dla powlok nieinterakcyjnych obrabiacz wykrocze nie moe zosta
zmieniony dla sygnalow, ktore byly ignorowane podczas startu
danej powloki.
Bez argumentow, trap wylicza, jako seria komend trap, obecny
status wykrocze, ktore zostaly ustawione od czasu startu
powloki.
Traktowanie sygnalow DEBUG oraz ERR i EXIT i oryginalnej powloki
Korna w funkcjach nie zostalo jak do tej pory jeszcze
zrealizowane.
true Komenda koczca si zerow wartoci kodu wyjcia.
typeset [[+-Ulprtux] [-L[n]] [-R[n]] [-Z[n]] [-i[n]] | -f [-tux]]
[nazwa[=warto] ...]
Wywietlaj lub ustawiaj wartoci atrybutow parametrow. Bez
argumentow nazwa, zostaj wywietlone atrybuty parametrow: jeli
brak argumentow bdcych opcjami, zostaj wywietlone atrybuty
wszystkich parametrow jako komendy typeset; jeli podano opcj
(lub - bez litery opcji) wszystkie parametry i ich wartoci
posiadajce dany atrybut zostaj wywietlone; jeli opcje zaczynaj
si od +, to nie zostaj wywietlone wartoci parametrow.
Jeli podano argumenty If nazwa, zostaj ustawione atrybuty danych
parametrow (-) lub odpowiednio wykasowane (+). Wartoci
parametrow mog zosta ewentualnie podane. Jeli typeset zostanie
zastosowane wewntrz funkcji, wszystkie nowotworzone parametry
pozostaj lokalne dla danej funkcji.
Jeli zastosowano -f, wowczas typeset operuje na atrybutach
funkcji. Tak jak dla parametrow, jeli brak nazws, zostaj
wymienione funkcje wraz z ich wartociami (tzn., definicjami),
chyba e podano opcje zaczynajce si od +, w ktorym wypadku zostaj
wymienione tylko nazwy funkcji.
-Ln Atrybut przyrownania do lewego brzegu: n
oznacza szeroko pola. Jeli brak n, to
zostaje zastosowana bieca szeroko parametru
(lub szeroko pierwszej przyporzdkowywanej
wartoci). Prowadzce biale przerwy (tak jak i
zera, jeli ustawiono opcj -Z) zostaj
wykasowane. Jeli trzeba, wartoci zostaj albo
obcite lub dodane przerwy do osignicia
wymaganej szerokoci.
-Rn Atrybut przyrownania do prawego brzegu: n
oznacza szeroko pola. Jeli brak n, to
zostaje zastosowana bieca szeroko parametru
(lub szeroko pierwszej przyporzdkowywanej
wartoci). Biale przerwy na kocu zostaj
usunite. Jeli trzeba, wartoci zostaj albo
pozbawione prowadzcych znakow albo przerwy
zostaj dodane do osignicia wymaganej
szerokoci.
-Zn Atrybut wypelniania zerami: jeli nie
skombinowany z -L, to oznacza to samo co -R,
tylko, e do rozszerzania zostaje zastosowane
zero zamiast przerw.
-in Atrybut calkowitoci: n podaje baz do
zastosowania podczas wypisywania danej
wartoci calkowitej (jeli nie podano, to baza
zostaje zaczerpnita z bazy zastosowanej w
pierwszym przyporzdkowaniu wartoci).
Parametrom z tym atrybutem mog by
przyporzdkowywane wartoci zawierajce wyraenia
arytmetyczne.
-U Atrybut dodatniej calkowitoci: liczby
calkowite zostaj wywietlone jako wartoci bez
znaku (stosowne jedynie w powizaniu z opcj
-i). Tej opcji brak w oryginalnej powloce
Korna.
-f Tryb funkcji: wywietlaj lub ustawiaj funkcje
i ich atrybuty, zamiast parametrow.
-l Atrybut malej litery: wszystkie znaki z duej
litery zostaj w wartoci zamienione na male
litery. (W oryginalnej powloce Korna,
parametr ten oznaczal `dlugi calkowity' gdy
byl stosowany w polczeniu z opcj -i).
-p Wypisuj pelne komendy typeset, ktore mona
nastpnie zastosowa do odtworzenia danych
atrybutow (lecz nie wartoci) parametrow. To
jest wynikiem domylnym (opcja ta istnieje w
celu zachowania kompatybilnoci z ksh93).
-r Atrybut wylcznego odczytu: parametry z danym
atrybutem nie przyjmuj nowych wartoci i nie
mog zosta wykasowane. Po ustawieniu tego
atrybutu nie mona go ju wicej odaktywni.
-t Atrybut zaznaczenia: bez znaczenia dla
powloki; istnieje jedynie do zastosowania w
aplikacjach.
Dla funkcji -t, to atrybut ledzenia. Jeli
zostaj wykonywane funkcje z atrybutem
ledzenia, to opcja powloki xtrace (-x)
zostaje tymczasowo wlczona.
-u Atrybut duej litery: wszystkie znaki z malej
litery w wartociach zostaj przestawione na
due litery. (W oryginalnej powloce Korna,
ten parametr oznaczal `calkowity bez znaku'
jeli zostal zastosowany w polczeniu z opcj
-i, oznaczalo to, e nie mona bylo stosowa
duych liter dla baz wikszych ni 10. patrz
opcja -U).
Dla funkcji, -u to atrybut niezdefiniowania.
Patrz "Funkcje" powyej dla implikacji tego.
-x Atrybut eksportowania: parametry (lub
funkcje) zostaj umieszczone w otoczenia
wszelkich wykonywanych komend. Eksportowanie
funkcji nie zostalo jeszcze do tej pory
zrealizowane.
ulimit [-acdfHlmnpsStvw] [warto]
Wywietl lub ustaw ograniczenia dla procesow. Jeli brak opcji,
to ograniczenie iloci plikow (-f) zostaje przyjte jako domyle.
warto, jeli podana, moe by albo wyraeniem arytmetycznym lub
slowem unlimited (nieograniczone). Ograniczenia dotycz powloki
i wszelkich procesow przez ni tworzonych po nadaniu
ograniczenia. Prosz zwroci uwag, i niektore systemy mog
zabrania podnoszenia wartoci ogranicze po ich nadaniu. Ponadto
prosz zwroci uwag, e rodzaje dostpnych ogranicze zale od danego
systemu - niektore systemy posiadaj jedynie moliwo ograniczania
-f.
-a Wywietla wszystkie ograniczenia; jeli nie podano -H, to
zostaj wywietlone ograniczenia mikkie.
-H Ustaw jedynie ograniczenie twarde (domylnie zostaj
ustawione zarowno ograniczenie twarde jak te i mikkie).
-S Ustaw jedynie ograniczenie mikkie (domylnie zostaj
ustawione zarowno ograniczenie twarde jak te i mikkie).
-c Ogranicz wielkoci plikow zrzutow core do n blokow.
-d Ogranicz wielko obszaru danych do n kilobajtow.
-f Ogranicz wielko plikow zapisywanych przez powlok i jej
programy pochodne do n blokow (pliki dowolnej wielkoci
mog by wczytywane).
-l Ogranicz do n kilobajtow ilo podkluczonej (podpitej)
fizycznej pamici.
-m Ogranicz do n kilobajtow ilo uywanej fizycznej pamici.
-n Ogranicz do n liczb jednoczenie otwartych deskryptorow
plikow.
-p Ogranicz do n liczb jednoczenie wykonywanych procesow
danego uytkownika.
-s Ogranicz do n kilobajtow rozmiar obszaru stosu.
-t Ogranicz do n sekund czas zuywany przez pojedyncze
procesy.
-v Ogranicz do n kilobajtow ilo uywanej wirtualnej pamici;
pod niektorymi systemami jest to maksymalny stosowany
wirtualny adres (w bajtach, a nie w kilobajtach).
-w Ogranicz do n kilobajtow ilo stosowanego obszaru
odkladania.
Dla ulimit blok to zawsze 512 bajtow.
umask [-S] [maska]
Wywietl lub ustaw mask zezwole w tworzeniu plikow, lub umask
(patrz umask(2)). Jeli zastosowano opcj -S, maska jest
wywietlana lub podawana symbolicznie, w przeciwnym razie jako
liczba osemkowa.
Symboliczne maski s podobne do tych stosowanych przez chmod(1):
[ugoa]{{=+-}{rwx}*}+[,...]
gdzie pierwsza grupa znakow jest czci kto, a druga grupa czci
op, i ostatnio grupa czci perm. Cz kto okrela, ktora cz umaski
ma zosta zmodyfikowana. Litery oznaczaj:
u prawa uytkownika
g prawa grupy
o prawa pozostalych (nieuytkownika, niegrupy)
a wszelkie prawa naraz (uytkownika, grupy i
pozostalych)
Cz op wskazuj jak prawa kto maj by zmienione:
= nadaj
+ dodaj do
- usu z
Cz perm wskazuje ktore prawa maj zosta nadane, dodane lub
usunite:
r prawo czytania
w prawo zapisu
x prawo wykonywania
Gdy stosuje si maski symboliczne, to opisuj one, ktore prawa mog
zosta udostpnione (w przeciwiestwie do masek osemkowych, w
ktorych ustawienie bitu oznacza, e ma on zosta wykasowany).
Przyklad: `ug=rwx,o=' ustawia mask tak, e pliki nie bd
odczytywalne, zapisywalne i wykonywalne przez `innych'. Jest ono
rownowane (w wikszoci systemow) oktalnej masce `07'.
unalias [-adt] [nazwa1 ...]
Aliasy dla danej nazwy zostaj usunite. Gdy zastosowano opcj -a,
to wszelkie aliasy zostaj usunite. Gdy zastosowano opcj -t lub
-d, to wymienione operacje zostaj wykonane jedynie na ledzonych
lub odpowiednio aliasach katalogow.
unset [-fv] parametr ...
Kasuj wymienione parametry (-v, oznacza domylne) lub funkcje
(-f). Status zakoczenia jest niezerowy jeli ktory z danych
parametrow byl ju wykasowany, a zero z przeciwnym razie.
wait [zadanie]
Czekaj na zakoczenie danego zadania/zada. Kodem wyjcia wait
jest kod ostatniego podanego zadania: jeli dane zadanie zostalo
zabite sygnalem, kod wyjcia wynosi 128 + numer danego sygnalu
(patrz kill -l kod_wyjcia powyej); jeli ostatnie dane zadanie
nie moe zosta odnalezione (bo nigdy nie istnialo lub ju zostalo
zakoczone), to kod zakoczenia wait wynosi 127. Patrz "Kontrola
zada" poniej w celu informacji o formacie zadanie. Wait zostaje
zakoczone jeli zajdzie sygnal, na ktory zostal ustawiony
obrabiacz, lub gdy zostanie odebrany sygnal HUP, INT lub QUIT.
Jeli nie podano zada, wait wait czeka na zakoczenie wszelkich
obecnych zada (jeli istniej takowe) i koczy si zerowym kodem
wyjcia. Jeli kontrola zada zostala wlczona, to zostaje
wywietlony kod wyjcia zada (to nie ma miejsca, jeli zadania
zostaly jawnie podane).
whence [-pv] [nazwa ...]
Dla kadej nazwy zostaje wymieniony odpowiednio typ komendy
(reserved word, built-in, alias, function, tracked alias lub
executable). Jeli podano opcj -p, to zostaje odszukana cieka
dla nazw, bdcych zarezerwowanymi slowami, aliasami, itp. Bez
opcji -v whence dziala podobnie do command -v, poza tym, e
whence odszukuje zarezerwowane slowa i nie wypisuje aliasow jako
komendy alias; z opcj -v, whence to to samo co command -V.
Zauwa, e dla whence, opcja -p nie ma wplywu na przeszukiwan
ciek, tak jak dla command. Jeli typ jednej lub wicej sporod
nazw nie mogl zosta ustalony to kod wyjcia jest niezerowy.
Kontrola zada
Kontrola zada oznacza zdolno powloki to monitorowania i kontrolowania
wykonywanych zada, ktore s procesami lub grupami procesow tworzonych
przez komendy lub potoki. Powloka przynajmniej ledzi status obecnych
zada w tle (tzn., asynchronicznych); t informacj mona otrzyma wykonujc
komend jobs. Jeli zostala uaktywniona pelna kontrola zada (stosujc set
-m lub set -o monitor), tak jak w powlokach interakcyjnych, to procesy
pewnego zadania zostaj umieszczane we wlasnej grupie procesow,
pierwszoplanowe zadnia mog zosta zatrzymane przy pomocy klawisza
wstrzymania z terminalu (zwykle ^Z), zadania mog zosta ponownie podjte
albo na pierwszym planie albo w tle, stosujc odpowiednio komendy fg i
bg, i status terminala zostaje zachowany a nastpnie odtworzony, jeli
zadanie na pierwszym planie zostaje zatrzymane lub odpowiednio
wznowione.
Prosz zwroci uwag, e tylko komendy tworzce procesy (tzn., komendy
asynchroniczne, komendy podpowlok i niewbudowane komendy nie bdce
funkcjami) mog zosta wstrzymane; takie komendy jak read nie mog tego.
Gdy zostaje stworzone zadanie, to przyporzdkowuje mu si numer zadania.
Dla interakcyjnych powlok, numer ten zostaje wywietlony w [..], i w
nastpstwie identyfikatory procesow w zadaniu, jeli zostaje wykonywane
asynchroniczne zadanie. Do zadania moemy odnosi si w komendach bg, fg,
jobs, kill i wait albo poprzez id ostatniego procesu w potoku komend
(tak jak jest on zapisywany w parametrze $!) lub poprzedzajc numer
zadania znakiem procentu (%). Rownie nastpujce sekwencj z procentem
mog by stosowane do odnoszenia si do zada:
%+ Ostatnio zatrzymane zadanie lub, gdy brak
zatrzymanych zada, najstarsze wykonywane
zadanie.
%%, % To samo co %+.
%- Zadanie, ktore byloby pod %+ gdyby nie
zostalo zakoczone.
%n Zadanie z numerem zadania n.
%?cig Zadanie zawierajce cig cig (wystpuje bld, gdy
odpowiada mu kilka zada).
%cig Zadanie zaczynajce si cigiem cig (wystpuje
bld, gdy odpowiada mu kilka zada).
Jeli zadanie zmienia status (tzn., gdy zadanie w tle zostaje zakoczone
lub zadanie na pierwszym planie zostaje wstrzymane), powloka wywietla
nastpujce informacje o statusie:
[numer] flaga status komenda
gdzie
numer to numer danego zadania.
flaga jest + lub - jeli zadaniem jest odpowiednio zadanie z %+ lub %-,
lub przerwa jeli nie jest ani jednym ani drugim.
status
Wskazuje obecny stan danego zadania i moe to by
Running
Zadanie nie jest ani wstrzymane ani zakoczone (prosz
zwroci uwag, i przebieg nie koniecznie musi oznacza
spotrzebowywanie czasu CPU -- proces moe by zablokowany,
czekajc na pewne zajcie).
Done [(numer)]
zadanie zakoczone. numer to kod wyjcia danego zadania,
ktory zostaje pominity, jeli wynosi on zero.
Stopped [(sygna/l)]
zadanie zostalo wstrzymane danym sygnalem sygna/l (gdy
brak sygnalu, to zadanie zostalo zatrzymane przez
SIGTSTP).
opis-sygna/lu [(core dumped)]
zadanie zostalo zabite sygnalem (tzn., Memory fault,
Hangup, itp. -- zastosuj kill -l dla otrzymania listy
opisow sygnalow). Wiadomo (core dumped) wskazuje, e
proces stworzyl plik zrzutu core.
command
to komenda, ktora stworzyla dany proces. Jeli dane zadanie
zawiera kilka procesow, to kady proces zostanie wywietlony w
osobnym wierszy pokazujcym jego command i ewentualnie jego
status, jeli jest on odmienny od statusu poprzedniego procesu.
Jeli probuje si zakoczy powlok, podczas gdy istniej zadania w stanie
zatrzymania, to powloka ostrzega uytkownika, e s zadania w stanie
zatrzymania i nie koczy pracy. Gdy tu potem zostanie podjta ponowna
proba zakoczenia powloki, to zatrzymane zadania otrzymuj sygnal HUP i
powloka koczy prac. podobnie, jeli nie zostala ustawiona opcja nohup,
i s zadania w pracy, gdy zostanie podjta proba zakoczenia powloki
zameldowania, powloka ostrzega uytkownika i nie koczy pracy. Gdy tu
potem zostanie ponownie podjta proba zakoczenia pracy powloki, to biece
procesy otrzymuj sygnal HUP i powloka koczy prac.
Interakcyjna edycja wiersza polece w trybie emacs
Jeli zostala ustawiona opcja emacs,jest wlczona interakcyjna edycja
wiersza wprowadze. Ostrzeenie: Ten tryb zachowuje si nieco inaczej ni
tryb emacsa w oryginalnej powloce Korna i 8-my bit zostaje wykasowany w
trybie emacsa. W trybie tym rone komendy edycji (zazwyczaj podlczone
pod jeden lub wicej znakow sterujcych) powoduj natychmiastowe akcje bez
odczekiwania nastpnego przelamania wiersza. Wiele komend edycji jest
zwizywanych z pewnymi znakami sterujcymi podczas odpalania powloki; te
zwizki mog zosta zmienione przy pomocy nastpujcych komend:
bind Obecne zwizki zostaj wyliczone.
bind cig=[komenda-edycji]
Dana komenda edycji zostaje podwizana pod dany cig, ktory
powinien sklada si ze znaku sterujcego (zapisanego przy pomocy
strzalki w gor ^X), poprzedzonego ewentualnie jednym z dwoch
znakow przedsionkownych. Wprowadzenie danego cigu bdzie wowczas
powodowalo bezporednie wywolanie danej komendy edycji. Prosz
zwroci uwag, e cho tylko dwa znaki przedsionkowe (zwykle ESC i
^X) s wspomagane, to mog rownie zosta podane niektore cigi
wieloznakowe. Nastpujce podlcza klawisze terminala ANSI lub
xterm (ktore s w domylnych podwizaniach). Oczywicie niektore
sekwencje wyprowadzenia nie chc dziala tak gladko:
bind '^[['=prefix-2
bind '^XA'=up-history
bind '^XB'=down-history
bind '^XC'=forward-char
bind '^XD'=backward-char
bind -l
Wymie nazwy funkcji, do ktorych mona podlczy klawisze.
bind -m cig=[podstawienie]
Dany cig wprowadzenia cig zostanie zamieniony bezporednio na
dane podstawienie, ktore moe zawiera komendy edycji.
Nastpuje lista dostpnych komend edycji. Kady z poszczegolnych opisow
zaczyna si nazw komendy, liter n, jeli komenda moe zosta poprzedzona
licznikiem, i wszelkimi klawiszami, do ktorych dana komenda jest
podlczona domylnie (w zapisie stosujcym notacj strzalkow, tzn., znak
ASCII ESC jest pisany jako ^[). Licznik poprzedzajcy komend
wprowadzamy stosujc cig ^[n, gdzie n to cig skladajcy si z jednej lub
wicej cyfr; chyba e podano inaczej licznik, jeli zostal pominity,
wynosi domylnie 1. Prosz zwroci uwag, e nazwy komend edycji stosowane
s jedynie w komendzie bind. Ponadto, wiele komend edycji jest
przydatnych na terminalach z widocznym kursorem. Domylne podwizania
zostaly wybrane tak, aby byly zgodne z odpowiednimi podwizaniami
Emacsa. Znaki uytkownika tty (w szczeg'olnoci, ERASE) zostaly
podlczenia do stosownych podstawie i kasuj domylne podlczenia.
abort ^G
Przydatne w odpowiedzi na zapytanie o wzorzec
przeszukiwania_historii do przerwania tego szukania.
auto-insert n
Powoduje po prostu wywietlenie znaku jako bezporednie
wprowadzenie. Wikszo zwyklych znakow jest pod to podlczona.
backward-char n ^B
Przesuwa kursor n znakow wstecz.
backward-word n ^[B
Przesuwa kursor wstecz na pocztek slowa; slowa skladaj si ze
znakow alfanumerycznych, podkrelenia (_) i dolara ($).
beginning-of-history ^[<
Przesuwa na pocztek historii.
beginning-of-line ^A
Przesuwa kursor na pocztek edytowanego wiersza wprowadzenia.
capitalize-word n ^[c, ^[C
Przemienia pierwszy znak w nastpnych n slowach na du liter,
pozostawiajc kursor za kocem ostatniego slowa. Jeli biecy
wiersz nie zaczyna si od znaku komentarza, zostaje on dodany na
pocztku wiersza i wiersz zostaje wprowadzony (tak jakby nacinito
przelamanie wiersza), w przeciwnym razie istniejce znaki
komentarza zostaj usunite i kursor zostaje umieszczony na
pocztku wiersza.
complete ^[^[
Automatycznie dopelnia tyle ile jest jednoznaczne w nazwie
komendy lub nazwie pliku zawierajcej kursor. Jeli cala
pozostala cz komendy lub nazwy pliku jest jednoznaczna to
przerwa zostaje wywietlona po wypelnieniu, chyba e jest to nazwa
katalogu, w ktorym to razie zostaje dolczone /. Jeli nie ma
komendy lub nazwy pliku zaczynajcej si od takiej czci slowa, to
zostaje wyprowadzony znak dzwonka (zwykle powodujacy slyszalne
zabuczenie).
complete-command ^X^[
Automatycznie dopelnia tyle ile jest jednoznaczne z nazwy
komendy zawierajcej czciowe slowo przed kursorem, tak jak w
komendzie complete opisanej powyej.
complete-file ^[^X
Automatycznie dopelnia tyle ile jest jednoznaczne z nazwy pliku
zawierajcego czciowe slowo przed kursorem, tak jak w komendzie
complete opisanej powyej.
complete-list ^[=
Wymie moliwe dopelnienia biecego slowa.
delete-char-backward n ERASE, ^?, ^H
Skasuj n znakow przed kursorem.
delete-char-forward n
Skasuj n znakow po kursorze.
delete-word-backward n ^[ERASE, ^[^?, ^[^H, ^[h
Skasuj n slow przed kursorem.
delete-word-forward n ^[d
Kasuje znaki po kursorze, a do koca n slow.
down-history n ^N
Przewija bufor historii w przod n wierszy (poniej). Kady wiersz
wprowadzenia zaczyna si oryginalnie tu po ostatnim miejscu w
buforze historii, tak wic down-history nie jest przydatny dopoki
nie wykonano search-history lub up-history.
downcase-word n ^[L, ^[l
Zamie na male litery nastpnych n slow.
end-of-history ^[>
Porusza do koca historii.
end-of-line ^E
Przesuwa kursor na koniec wiersza wprowadzenia.
eot ^_ Dziala jako koniec pliku; Jest to przydatne, albowiem tryb
edycji wprowadzenia wylcza normaln regularyzacj wprowadzenia
terminala.
eot-or-delete n ^D
Dziala jako eot jeli jest samotne na wierszu; w przeciwnym razie
dziala jako delete-char-forward.
error Error (ring the bell).
exchange-point-and-mark ^X^X
Umie kursor na znaczniku i ustaw znacznik na miejsce, w ktorym
byl kursor.
expand-file ^[*
Dodaje * do biecego slowa i zastpuje dane slowo wynikiem
rozwinicia nazwy pliku na danym slowie. Gdy nie pasuj adne
pliki, zadzwo.
forward-char n ^F
Przesuwa kursor naprzod o n znakow.
forward-word n ^[f
Przesuwa kursor naprzod na zakoczenie n-tego slowa.
goto-history n ^[g
Przemieszcza do historii numer n.
kill-line KILL
Kasuje caly wiersz wprowadzenia.
kill-region ^W
Kasuje wprowadzenie pomidzy kursorem a znacznikiem.
kill-to-eol n ^K
Jeli ominito n, to kasuje wprowadzenia od kursora do koca
wiersza, w przeciwnym razie kasuje znaki pomidzy kursorem a n-t
kolumn.
list ^[?
Wywietla sortowan, skolumnowan list nazw komend lub nazw plikow
(jeli s takowe), ktore moglyby dopelni czciowe slowo zawierajce
kursor. Do nazw katalogow zostaje dolczone /.
list-command ^X?
Wywietla sortowan, skolumnowan list nazw komend (jeli s takowe),
ktore moglyby dopelni czciowe slowo zawierajce kursor.
list-file ^X^Y
Wywietla sortowan, skolumnowan list nazw plikow (jeli s takowe),
ktore moglyby dopelni czciowe slowo zawierajce kursor.
Specyfikatory rodzaju plikow zostaj dolczone tak jak powyej
opisano pod list.
newline ^J, ^M
Powoduje przetworzenie biecego wiersza wprowadze przez powlok.
Kursor moe znajdowa si aktualnie gdziekolwiek w wierszu.
newline-and-next ^O
Powoduje przetworzenie biecego wiersza wprowadze przez powlok,
po czym nastpny wiersz z historii staje si wierszem biecym. Ma
to tylko sens po poprzednim up-history lub search-history.
no-op QUIT
Nie robi nic.
prefix-1 ^[
Przedsionek 1-znakowej sekwencji komendy.
prefix-2 ^X
prefix-2 ^[[
Przedsionek 2-znakowej sekwencji komendy.
prev-hist-word n ^[., ^[_
Ostatnie (n-te) slowo poprzedniej komendy zostaje wprowadzone na
miejscu kursora.
quote ^^
Nastpny znak zostaje wzity doslownie zamiast jako komenda
edycji.
redraw ^L
Przerysuj ponownie zacht i biecy wiersz wprowadzenia.
search-character-backward n ^[^]
Szukaj w tyl w biecym wierszu n-tego wystpienia nastpnego
wprowadzonego znaku.
search-character-forward n ^]
Szukaj w przod w biecym wierszu n-tego wystpienia nastpnego
wprowadzonego znaku.
search-history ^R
Wejd w kroczcy tryb szukania. Wewntrzna lista historii zostaje
przeszukiwana wstecz za komendami odpowiadajcymi wprowadzeniu.
pocztkowe ^ w szukanym cigu zakotwicza szukanie. Klawisz
przerwania powoduje opuszczenie trybu szukania. Inne komendy
zostan wykonywane po opuszczeniu trybu szukania. Ponowne
komendy search-history kontynuuj szukanie wstecz do nastpnego
poprzedniego wystpienia wzorca. Bufor historii zawiera tylko
skoczon ilo wierszy; dla potrzeby najstarsze zostaj wyrzucone.
set-mark-command ^[<space>
Postaw znacznik na biecej pozycji kursora.
stuff Pod systemami to wspomagajcymi, wypycha podlczony znak z
powrotem do wejcia terminala, gdzie moe on zosta specjalnie
przetworzony przez terminal. Jest to przydatne np. dla opcji
BRL ^T minisystata.
stuff-reset
Dziala tak jak stuff, a potem przerywa wprowadzenie tak jak
przerwanie.
transpose-chars ^T
Na kocu wiersza lub jeli wlczono opcj gmacs, zamienia dwa
poprzedzajce znaki; w przeciwnym razie zamienia poprzedni i
biecy znak, po czym przesuwa kursor jeden znak na prawo.
up-history n ^P
Przewija bufor historii n wierszy wstecz (wczeniej).
upcase-word n ^[U, ^[u
Zamienia nastpnych n slow w due litery.
version ^V
Wypisuje wersj ksh. Obecny bufor edycji zostaje odtworzony gdy
tylko zostanie nacinity jakikolwiek klawisz (po czym ten klawisz
zostaje przetworzony, chyba e
jest to przerwa).
yank ^Y
Wprowad ostatnio skasowany cig tekstu na biec pozycj kursora.
yank-pop ^[y
bezporednio po yank, zamienia wprowadzony tekst na nastpny
poprzednio skasowany cig tekstu.
Interkacyjny tryb edycji wiersza polece vi
Edytor vi wiersza komendy w ksh obsluguje w zasadzie te same komendy co
edytor vi (patrz vi(1)), poza nastpujcymi wyjtkami:
o zaczyna w trybie wprowadzania,
o ma komendy uzupelniania nazw plikow i komend (=, \, *, ^X, ^E,
^F i, opcjonalnie, <tab>),
o komenda _ dziala odmiennie (w ksh jest to komenda ostatniego
argumentu, a w vi przechodzenie do pocztku biecego wiersza),
o komendy / i G poruszaj si w kierunkach odwrotnych do komendy j
o brak jest komend, ktore nie maj znaczenia w edytorze obslugujcym
jeden wiersz (w szczeg'olnoci, przewijanie ekranu, komendy ex :,
itp.).
Prosz zwroci uwag, e ^X oznacza control-X; oraz <esc>, <space> i <tab>
stosowane s za escape, space i tab, odpowiednio (bez artow).
Tak jak w vi, s dwa tryby: tryb wprowadzania i tryb komend. W trybie
wprowadzania, wikszo znakow zostaje po prostu umieszczona w buforze na
biecym miejscu kursora w kolejnoci ich wpisywania, chocia niektore
znaki zostaj traktowane specjalnie. W szczegolnoci nastpujce znaki
odpowiadaj obecnym ustawieniom tty (patrz stty(1)) i zachowuj ich
normalne znaczenia (normalne wartoci s podane w nawiasach): skasuj
(^U), wyma (^?), wyma slowo (^W), eof (^D), przerwij (^C) i zakocz
(^\). Poza powyszymi dodatkowo rownie nastpujce znaki zostaj
traktowane specjalnie w trybie wprowadzania:
^H kasuje poprzedni znak
^V bezporednio nastpny: nastpny nacinity znak
nie zostaje traktowany specjalnie (mona tego
uy do wprowadzenia opisywanych tu znakow)
^J ^M koniec wiersza: biecy wiersz zostaje
wczytany, rozpoznany i wykonany przez powlok
<esc> wprowadza edytor w tryb komend (patrz poniej)
^E wyliczanie komend i nazw plikow (patrz
poniej)
^F dopelnianie nazw plikow (patrz poniej). Jeli
zostanie uyte dwukrotnie, to wowczas wywietla
list moliwych dopelnie; jeli zostanie uyte
trzykrotnie, to kasuje dopelnienie.
^X rozwijanie nazw komend i plikow (patrz
poniej)
<tab> opcjonalnie dopelnianie nazw plikow i komend
(patrz ^F powyej), wlczane przez set -o vi-
tabcomplete
Jeli jaki wiersz jest dluszy od szerokoci ekranu (patrz parametr
COLUMNS), to zostaje wywietlony znak >, + lub < w ostatniej kolumnie,
wskazujcy odpowiednio na wicej znakow po, przed i po, oraz przed obecn
pozycj. Wiersz jest przewijany poziomo w razie potrzeby.
W trybie komend, kady znak zostaje interpretowany jako komenda. Znaki
ktorym nie odpowiada adna komenda, ktore s niedopuszczaln komend lub s
komendami nie do wykonania, wszystkie wyzwalaj dzwonek. W nastpujcych
opisach komend, n wskazuje, e komend mona poprzedzi numerem (tzn., 10l
przesuwa w prawo o 10 znakow); gdy brak przedrostka numerowego, to
zaklada si, e n jest rowne 1, chyba e powiemy inaczej. Zwrot `bieca
pozycja' odnosi si do pozycji pomidzy kursorem a znakiem przed nim.
`Slowo' to cig liter, cyfr lub podkrele albo cig nie nieliter, niecyfr,
niepodkrele, niebialych-znakow (tak wic, ab2*&^ zawiera dwa slowa),
oraz `due slowo' jest cigiem niebialych znakow.
Specjalne ksh komendy vi
Nastpujcych komend brak lub s one odmienne od tych w normalnym
edytorze plikow vi:
n_ wprowad przerw z nastpstwem n-tego duego slowa z
ostatniej komendy w historii na biecej pozycji i wejd w
tryb wprowadzania; jeli nie podano n to domylnie zostaje
wprowadzone ostatnie slowo.
# wprowad znak komentarza (#) na pocztku biecego wiersza i
przeka ten wiersz do powloki ( tak samo jak I#^J).
ng tak jak G, z tym e, jeli nie podano n to dotyczy to
ostatnio zapamitanego wiersza.
nv edytuj wiersze n stosujc edytor vi; jeli nie podano n, to
edytuje biecy wiersz. Wlaciw wykonywan komend jest `fc
-e ${VISUAL:-${EDITOR:-vi}} n'.
* i ^X dopelnianie komendy lub nazwy pliku zostaje zastosowane
do obecnego duego slowa (po dodaniu *, jeli to slowo nie
zawiera adnych znakow dopelniania nazw plikow) - due
slowo zostaje zastpione slowami wynikowymi. Jeli biece
due slowo jest pierwszym w wierszu (lub wystpuje po
jednym z nastpujcych znakow: ;, |, &, (, )) i nie zawiera
ukonika (/) to rozwijanie komendy zostaje wykonane, w
przeciwnym razie zostaje wykonane rozwijanie nazwy
plikow. Rozwijanie komend podpasowuje due slowo pod
wszelkie aliasy, funkcje i wbudowane komendy jak i rownie
wszelkie wykonywalne pliki odnajdywane przeszukujc
katalogi wymienione w parametrze PATH. Rozwijanie nazw
plikow dopasowuje due slowo do nazw plikow w biecym
katalogu. Po rozwiniciu, kursor zostaje umieszczony tu
po ostatnim slowie na kocu i edytor jest w trybie
wprowadzania.
n\, n^F, n<tab> i n<esc>
dopelnianie nazw komend/plikow: zastpuje biece due slowo
najdluszym, jednoznacznym dopasowaniem otrzymanym przez
rozwinicie nazwy komendy/pliku. <tab> zostaje jedynie
rozpoznane jeli zostala wlczona opcja vi-tabcomplete,
podczas gdy <esc> zostaje jedynie rozpoznane jeli zostala
wlczona opcja vi-esccomplete (patrz set -o). Jeli podano
n to zostaje uyte n-te moliwe dopelnienie (z tych
zwracanych przez komend wyliczania dopelnie nazw
komend/plikow).
= i ^E wyliczanie nazw komend/plikow: wymie wszystkie komendy
lub pliki pasujce pod obecne due slowo.
^V wywietl wersj pdksh; jest ona wywietlana do nastpnego
nacinicia klawisza (ten klawisz zostaje zignorowany).
@c rozwinicie makro: wykonaj komendy znajdujce si w aliasie
_c.
Komendy przemieszczania w wierszu
nh i n^H
przesu si na lewo n znakow.
nl i n<space>
przesu si w prawo n znakow.
0 przesu si do kolumny 0.
^ przesu si do pierwszego niebialego znaku.
n| przesu si do kolumny n.
$ przesu si do ostatniego znaku.
nb przesu si wstecz n slow.
nB przesu si wstecz n duych slow.
ne przesu si na przod do koca slowo n razy.
nE przesu si na przod do koca duego slowa n razy.
nw przesu si na przod o n slow.
nW przesu si na przod o n duych slow.
% odnajd wzor: edytor szuka do przodu najbliszego nawiasu
zamykajcego (okrglego, prostoktnego lub klamrowego), a
nastpnie przesuwa si midzy nim a odpowiadajcym mu
nawiasem otwierajcym.
nfc przesu si w przod do n-tego wystpienia znaku c.
nFc przesu si w tyl do n-tego wystpienia znaku c.
ntc przesu si w przod tu przed n-te wystpienie znaku c.
nTc przesu si w tyl tu przed n-te wystpienie znaku c.
n; powtarza ostatni komend f, F, t lub T.
n, powtarza ostatni komend f, F, t lub T, lecz porusza si w
przeciwnym kierunku.
Komendy przemieszczania midzy wierszami
nj, n+ i n^N
przejd do n-tego nastpnego wiersza w historii.
nk, n- i n^P
przejd do n-tego poprzedniego wiersza w historii.
nG przejd do wiersza n w historii; jeli brak n, to przenosi
si do pierwszego zapamitanego wiersza w historii.
ng tak jak G, tylko, e jeli nie podano n to idzie do
ostatnio zapamitanego wiersza.
n/cig szukaj wstecz w historii n-tego wiersza zawierajcego cig;
jeli cig zaczyna si od ^, to reszta cigu musi wystpowa na
samym pocztku wiersza historii aby pasowala.
n?string
tak jak /, tylko, e szuka do przodu w historii.
nn szukaj n-tego wystpienia ostatnio szukanego cigu;
kierunek jest ten sam co kierunek ostatniego szukania.
nN szukaj n-tego wystpienia ostatnio szukanego cigu;
kierunek jest przeciwny do kierunku ostatniego szukania.
Komendy edycji
na dodaj tekst n-krotnie: przechodzi w tryb wprowadzania tu
po biecej pozycji. Dodanie zostaje jedynie wykonane,
jeli zostanie ponownie uruchomiony tryb komendy (tzn.,
jeli <esc> zostanie uyte).
nA tak jak a, z t ronic, e dodaje do koca wiersza.
ni dodaj tekst n-krotnie: przechodzi w tryb wprowadzania na
biecej pozycji. Dodanie zostaje jedynie wykonane, jeli
zostanie ponownie uruchomiony tryb komendy (tzn., jeli
<esc> zostanie uyte).
nI tak jak i, z t ronic, e dodaje do tu przed pierwszym
niebialym znakiem.
ns zamie nastpnych n znakow (tzn., skasuj te znaki i przejd
do trybu wprowadzania).
S zastp caly wiersz: wszystkie znaki od pierwszego
niebialego znaku do koca wiersza zostaj skasowane i
zostaje uruchomiony tryb wprowadzania.
nckomenda-przemieszczenia
przejd z biecej pozycji do pozycji wynikajcej z n
komenda-przemieszczenias (tj., skasuj wskazany region i
wejd w tryb wprowadzania); jeli komend-przemieszczenia
jest c, to wiersz zostaje zmieniony od pierwszego
niebialego znaku poczwszy.
C zmie od obecnej pozycji do koca wiersza (tzn. skasuj do
koca wiersza i przejd do trybu wprowadzania).
nx skasuj nastpnych n znakow.
nX skasuj poprzednich n znakow.
D skasuj do koca wiersza.
ndmove-cmd
skasuj od obecnej pozycji do pozycji wynikajcej z n
krotnego move-cmd; move-cmd moe by komend przemieszczania
(patrz powyej) lub d, co powoduje skasowanie biecego
wiersza.
nrc zamie nastpnych n znakow na znak c.
nR zamie: wejd w tryb wprowadzania lecz przepisuj istniejce
znaki zamiast wprowadzania przed istniejcymi znakami.
Zamiana zostaje wykonana n krotnie.
n~ zmie wielko nastpnych n znakow.
nymove-cmd
wytnij od obecnej pozycji po pozycj wynikajc z n krotnego
move-cmd do bufora wycinania; jeli move-cmd jest y, to
caly wiersz zostaje wycity.
Y wytnij od obecnej pozycji do koca wiersza.
np wklej zawarto bufora wycinania tu po biecej pozycji, n
krotnie.
nP tak jak p, tylko e bufor zostaje wklejony na biecej
pozycji.
Rone komendy vi
^J i ^M
biecy wiersz zostaje wczytany, rozpoznany i wykonany
przez powlok.
^L i ^R
odrysuj biecy wiersz.
n. wykonaj ponownie ostatni komend edycji n razy.
u odwro ostatni komend edycji.
U odwro wszelkie zmiany dokonane w danym wierszu.
intr i quit
znaki terminala przerwy i zakoczenia powoduj skasowania
biecego wiersza i wywietlenie nowej zachty.
PLIKI
~/.profile
/etc/profile
/etc/suid_profile
B/LDY
Wszelkie bldy w pdksh naley zglasza pod adresem pdksh@cs.mun.ca. Prosz
poda wersj pdksh (echo $KSH_VERSION), maszyn, system operacyjny i
stosowany kompilator oraz opis jak powtorzy dany bld (najlepiej maly
skrypt powloki demonstrujcy dany bld). Nastpujce moe by rownie
pomocne, jeli ma znaczenie (jeli nie jeste pewny to podaj to rownie):
stosowane opcje (zarowno z opcje options.h jak i ustawione -o opcje) i
twoja kopia config.h (plik generowany przez skrypt configure). Nowe
wersje pdksh mona otrzyma z ftp://ftp.cs.mun.ca/pub/pdksh/.
AUTORZY
Ta powloka powstala z publicznego klonu siodmego wydania powloki
Bourne'a wykonanego przez Charlesa Forsytha i z czci powloki BRL
autorstwa Doug A. Gwyna, Douga Kingstona, Rona Natalie;a, Arnolda
Robbinsa, Lou Salkinda i innych. Pierwsze wydanie pdksh stworzyl Eric
Gisin, a nastpnie troszczyli si ni kolejno John R. MacMillan
(chance!john@sq.sq.com), i Simon J. Gerraty (sjg@zen.void.oz.au).
Obecnym opiekunem jest Michael Rendell (michael@cs.mun.ca). Plik
CONTRIBUTORS w dystrybucji rodel zawiera bardziej kompletn list ludzi i
ich wkladu do rozwoju tej powloki.
Tlumaczenie tego podrcznika na jzyk polski wykonal Marcin Dalecki
<dalecki@cs.net.pl>.
ZOBACZ TAKE
awk(1), sh(1), csh(1), ed(1), getconf(1), getopt(1), sed(1), stty(1),
vi(1), dup(2), execve(2), getgid(2), getuid(2), open(2), pipe(2),
wait(2), getopt(3), rand(3), signal(3), system(3), environ(5)
The KornShell Command and Programming Language, Morris Bolsky i David
Korn, 1989, ISBN 0-13-516972-0.
UNIX Shell Programming, Stephen G. Kochan, Patrick H. Wood, Hayden.
IEEE Standard for information Technology - Portable Operating System
Interface (POSIX) - Part 2: Shell and Utilities, IEEE Inc, 1993, ISBN
1-55937-255-9.
INFORMACJE O T/LUMACZENIU
Powysze tlumaczenie pochodzi z nieistniejcego ju Projektu Tlumaczenia
Manuali i moe nie by aktualne. W razie zauwaenia ronic midzy powyszym
opisem a rzeczywistym zachowaniem opisywanego programu lub funkcji,
prosimy o zapoznanie si z oryginaln (angielsk) wersj strony podrcznika.
22 lutego 1999 KSH(1)