Provided by: manpages-pl_20060617-2_all bug

NAZWA

       ksh - Publiczna implementacja powłoki Korna

WYWOŁANIE

       ksh [+-abCefhikmnprsuvxX] [+-o opcja] [ [ -c acuch_komend
       [nazwa_komendy]|-s|plik ] [argument ...] ]

OPIS

       ksh to interpreter komend zaprojektowany zarówno do interakcyjnej pracy
       z  systemem,  jak  i  do  wykonywania skryptów.  Jego język komend jest
       nadzbiorem (superset) języka powłoki sh(1).

   Uruchamianie powłoki
       Następujące opcje mogą być użyte wyłącznie w linii komend:

       -c acuch_komend
              powłoka wykonuje komendę(y) zawartą(e) w acuchu_komend

       -i     tryb interakcyjny -- patrz poniżej

       -l     powłoka zameldowania -- patrz poniżej tryb interakcyjny -- patrz
              poniżej

       -s     powłoka  wczytuje  komendy  ze  standardowego  wejścia; wszelkie
              argumenty nie będące opcjami są argumentami pozycyjnymi

       -r     tryb ograniczony -- patrz poniżej

       Ponadto wszelkie opcje, opisane w  omówieniu  wbudowanej  komendą  set,
       mogą również zostać użyte w linii poleceń.

       Jeśli  nie  została podana ani opcja -c, ani opcja -s, wówczas pierwszy
       argument nie będący opcją, określa plik,  z  którego  zostaną  wczytane
       komendy.  Jeśli  brak  jest argumentów nie będących opcjami, to powłoka
       wczytuje  komendy  ze  standardowego  wejścia.   Nazwa   powłoki   (tj.
       zawartość  parametru $0) jest ustalana jak następuje: jeśli użyto opcji
       -c i podano argument nie będący opcją, to jest on nazwą; jeśli  komendy
       są  wczytywane  z  pliku,  wówczas  nazwa tego pliku zostaje użyta jako
       nazwa powłoki; w każdym innym przypadku zostaje użyta nazwa, pod  którą
       powłoka została wywołana (tzn. wartość argv[0]).

       Powłoka  jest  interakcyjna,  jeśli  użyto  opcji  -i lub jeśli zarówno
       standardowe wejście, jak i standardowe wyjście błędów, jest  skojarzone
       z  jakimś  terminalem.   W  interakcyjnej powłoce kontrola zadań (jeśli
       takowa jest dostępna w danym systemie) jest włączona oraz ignorowane są
       następujące  sygnały:  INT,  QUIT  oraz TERM. Ponadto powłoka wyświetla
       zachętę przed odczytywaniem poleceń (patrz parametry PS1 i  PS2).   Dla
       nieinterakcyjnych powłok, uaktywnia się domyślnie opcja trackall (patrz
       poniżej: komenda set).

       Powłoka jest ograniczona, jeśli  zastosowano  opcję  -r  lub  gdy  albo
       główna część nazwy (basename), pod jaką wywołano powłokę, albo parametr
       SHELL, pasują do wzorca *r*sh (na przykład: rsh,  rksh,  rpdksh  itp.).
       Po  przetworzeniu  przez  powłokę  wszystkich  plików  profili  i  $ENV
       włączane są następujące ograniczenia:
         o    niedostępna jest komenda cd
         o    nie mogą być zmieniane parametry: SHELL, ENV i PATH.
         o    nazwy  poleceń  nie  mogą  być  podawane   z   użyciem   ścieżek
              bezwzględnych lub względnych [tłum.: tj. dostępne są tylko przez
              nazwę bez ścieżki]
         o    niedostępna jest opcja -p wbudowanego polecenia command
         o    nie mogą być używane przekierowania tworzące pliki (np.: >,  >|,
              >>, <>)

       Powłoka  jest  uprzywilejowana,  jeśli  zastosowano  opcję -p lub jeśli
       rzeczywisty identyfikator użytkownika lub jego grupy nie jest zgodny  z
       efektywnym  identyfikatorem  użytkownika  czy  grupy (patrz: getuid(2),
       getgid(2)).  Uprzywilejowana powłoka nie przetwarza ani $HOME/.profile,
       ani   parametru   ENV   (patrz   poniżej),   przetwarza   za   to  plik
       /etc/suid_profile.  Wykasowanie  opcji  uprzywilejowania  powoduje,  że
       powłoka  ustawia  swój  efektywny  identyfikator użytkownika i grupy na
       wartości faktycznego identyfikatora użytkownika (user-id) i jego  grupy
       (group-id).

       Jeśli  główna część nazwy, pod jaką dana powłoka została wywołana (tzn.
       argv[0]) zaczyna się od - lub  użyto  opcji  -l,  to  zakłada  się,  że
       powłoka  ma być powłoką zgłoszeniową i wczytywana jest zawartość plików
       /etc/profile  i  $HOME/.profile,  jeśli  takie  istnieją  i  można   je
       odczytać.

       Jeżeli parametr ENV jest ustawiony podczas uruchamiania powłoki (albo w
       wypadku powłok  zgłoszeniowych  -  po  przetworzeniu  dowolnych  plików
       profilowych),   to   jego   zawartość   zostaje  poddana  zastępowaniu.
       Zastępowane są parametry, komendy, wyrażenia arytmetyczne  oraz  tylda.
       Następnie  wynikająca  z  tej  operacji  nazwa jest interpretowana jako
       nazwa pliku, podlegającego wczytaniu i wykonaniu.  Jeśli  parametr  ENV
       jest  pusty (i niezerowy), a pdksh został skompilowany ze zdefiniowanym
       makrem DEFAULT_ENV, to po wykonaniu wszelkich  już  wyżej  wymienionych
       podstawień, zostaje wczytany plik określony tym makrem.

       Kod  wyjścia  powłoki  wynosi  127,  jeśli  plik komend podany we linii
       wywołania nie mógł zostać otwarty,  lub  kod  wyjścia  jest  niezerowy,
       jeśli wystąpił krytyczny błąd składni podczas wykonywania tego skryptu.
       W razie  braku  błędów  krytycznych,  kod  wyjścia  jest  równy  kodowi
       ostatnio wykonanej komendy lub zeru, jeśli nie wykonano żadnej komendy.

   Składnia poleceń
       Powłoka  rozpoczyna  analizę  składniową  wejścia  od  podziału  go  na
       poszczególne  słowa  word.  Słowa, stanowiące ciągi znaków, ograniczane
       są niecytowanymi białymi znakami whitespace (spacja, tabulator  i  nowa
       linia) lub metaznakami (<, >, |, ;, &, ( i )).  Poza ograniczaniem słów
       spacje i tabulatory są ignorowane.  Natomiast znaki zmiany linii zwykle
       rozgraniczają   komendy.    Metaznaki   stosowane   są   do   tworzenia
       następujących symboli: <,  <&,  <<,  >,  >&,  >>,  itd.,  służących  do
       określania   przekierowań  (patrz:  "Przekierowywanie  wejścia/wyjścia"
       poniżej);  |  służy  do  tworzenia  potoków;  |&  służy  do   tworzenia
       koprocesów (patrz: "Koprocesy" poniżej); ; służy do oddzielania komend;
       & służy do  tworzenia  potoków  asynchronicznych;  &&  i  ||  służą  do
       określenia  wykonania  warunkowego; ;; jest używany w poleceniach case;
       (( .. )) są używane w wyrażeniach arytmetycznych; i w  końcu,  (  ..  )
       służą do tworzenia podpowłok.

       Białe  znaki  lub  metaznaki  można  zacytowywać pojedynczo przy użyciu
       znaku  odwrotnego  ukośnika  (\)  lub  grupami  w  podwójnych  (")  lub
       pojedynczych  (') cudzysłowach.  Zauważ, iż następujące znaki podlegają
       również specjalnej interpretacji przez powłokę i  muszą  być  cytowane,
       jeśli  mają  być  użyte dosłownie: \, ", ', #, $, `, ~, {, }, *, ? i [.
       Pierwsze trzy to wyżej wspomniane symbole cytowania (patrz: "Cytowanie"
       poniżej);  #,  na  początku  słowa  rozpoczyna komentarz -- wszystko po
       znaku #, aż do końca linii jest ignorowane;  $  służy  do  wprowadzenia
       podstawienia  parametru,  komendy  lub wyrażenia arytmetycznego (patrz:
       "Podstawienia" poniżej); ` rozpoczyna  podstawienia  komendy  w  starym
       stylu   (patrz:   "Podstawienia"  poniżej);  ~  rozpoczyna  rozwinięcie
       katalogu (patrz: "Rozwijanie tyld" poniżej); { i } obejmują  alternacje
       w  stylu csh(1) (patrz: "Rozwijanie nawiasów" poniżej); i na koniec, *,
       ? oraz [ są stosowane przy tworzeniu nazw plików (patrz:  "Wzorce  nazw
       plików" poniżej).

       W  trakcie  analizy  słów  i  symboli,  powłoka tworzy komendy, których
       wyróżnia się dwa rodzaje: komendy proste, zwykle programy do wykonania,
       oraz komendy zoone, takie jak dyrektywy for i if, struktury grupujące
       i definicje funkcji.

       Polecenie proste  składa  się  z  kombinacji  przyporządkowań  wartości
       parametrom  (patrz:  "Parametry"), przekierowań wejścia/wyjścia (patrz:
       "Przekierowania wejścia/wyjścia") i słów komend; Jedynym  ograniczeniem
       jest  to, że wszelkie podstawienia wartości parametrów muszą występować
       przed słowami komend.  Słowa komend, jeśli  zostały  podane,  określają
       polecenie, które należy wykonać, wraz z jego argumentami.  Komenda może
       być komendą wbudowaną powłoki, funkcją  lub  komend  zewntrzn,  tzn.
       oddzielnym  plikiem  wykonywalnym,  który  jest odnajdowany przy użyciu
       wartości parametru PATH (patrz: "Wykonywanie komend" poniżej).   Trzeba
       zauważyć,  że  wszystkie komendy mają swój kod zakoczenia: dla poleceń
       zewnętrznych jest on powiązany z kodem zwracanym przez  wait(2)  (jeśli
       komenda  nie  została  odnaleziona,  wówczas  kod wynosi 127, natomiast
       jeśli nie można było jej wykonać, to kod wynosi  126).   Kody  zwracane
       przez  inne polecenia (komendy wbudowane, funkcje, potoki, listy, itp.)
       są  precyzyjnie  określone,  a  ich  opis  towarzyszy  opisowi   danego
       konstruktu.  Kod wyjścia komendy zawierającej jedynie przyporządkowania
       wartości parametrom, odpowiada  kodowi  ostatniego  wykonanego  podczas
       tego podstawienia lub zeru, jeśli żadne podstawienia nie miały miejsca.

       Przy pomocy symbolu |  komendy  mogą  zostać  powiązane  w  potoki.   W
       potokach  standardowe  wyjście wszystkich komend poza ostatnim, zostaje
       wyprowadzone (patrz pipe(2)) na standardowe wejście następnej  komendy.
       Kod  wyjścia potoku jest równy kodowi zwróconemu przez ostatnią komendę
       potoku.   Potok  może  zostać  poprzedzony  zarezerwowanym  słowem   !,
       powodującym  zmianę kodu wyjścia na jego logiczne przeciwieństwo.  Tzn.
       jeśli pierwotnie kod wyjścia wynosił 0, to będzie on  miał  wartość  1,
       natomiast jeśli pierwotną wartością nie było 0, to kodem przeciwstawnym
       jest 0.

       List  komend  tworzymy  rozdzielając  potoki  jednym  z  następujących
       symboli:  &&,  ||,  &,  |&  i  ;.   Pierwsze  dwa  oznaczają  warunkowe
       wykonanie: cmd1 && cmd2 wykonuje cmd2 tylko wtedy, jeżeli  kod  wyjścia
       cmd1  był  zerowy.   Natomiast || zachowuje się dokładnie odwrotnie. --
       cmd2 zostaje wykonane jedynie, jeśli kod  wyjścia  cmd1  był  różny  od
       zera.   &&  i  ||  wiążą  równoważnie, a zarazem mocniej niż &, |& i ;,
       które z kolei również  posiadają  tę  samą  siłę  wiązania.   Symbol  &
       powoduje,    że    poprzedzająca    go    komenda   zostanie   wykonana
       asynchronicznie, tzn. powłoka uruchamia daną komendę, jednak nie  czeka
       na  jej  zakończenie (powłoka śledzi dokładnie wszystkie asynchroniczne
       komendy  --  patrz:   "Kontrola   zadań"   poniżej).    Jeśli   komenda
       asynchroniczna  jest  uruchomiona przy wyłączonej kontroli zadań (tj. w
       większości  skryptów),  wówczas  jest  ona  uruchamiana  z  wyłączonymi
       sygnałami   INT  i  QUIT  oraz  przekierowanym  wejściem  do  /dev/null
       (aczkolwiek przekierowania, ustalone w samej komendzie  asynchronicznej
       mają  tu  pierwszeństwo).   Operator |& rozpoczyna koproces, stanowiący
       specjalnego  rodzaju   komendę   asynchroniczną   (patrz:   "Koprocesy"
       poniżej).   Zauważ,  że po operatorach && i || musi występować komenda,
       podczas gdy nie jest to konieczne po &, |& i ;.   Kodem  wyjścia  listy
       komend  jest  kod  ostatniego  wykonanego w niej polecenia, z wyjątkiem
       list asynchronicznych, dla których kod wynosi 0.

       Komendy złożone tworzymy przy pomocy następujących słów zarezerwowanych
       --  słowa  te  są  rozpoznane  tylko  wtedy,  gdy  nie  są zacytowane i
       występują jako pierwsze wyrazy w  komendzie  (tj.  nie  są  poprzedzone
       żadnymi      przyporządkowywaniami      wartości     parametrom     czy
       przekierowaniami):

                         case   else   function   then    !
                         do     esac   if         time    [[
                         done   fi     in         until   {
                         elif   for    select     while   }
       Uwaga: Niektóre powłoki (lecz nie nasza) wykonują polecenia sterujące w
       podpowłoce,  gdy  przekierowano  jeden  lub  więcej  z ich deskryptorów
       plików, tak więc wszelkiego rodzaju zmiany otoczenia w  nich  mogą  nie
       działać.   Aby  zachować  przenośność należy stosować polecenie exec do
       przekierowań deskryptorów plików przed poleceniem sterującym.

       W poniższym opisie poleceń złożonych, listy  komend  (zaznaczone  przez
       lista),  po  których  następuje  słowo zarezerwowane, muszą kończyć się
       średnikiem, przełamaniem wiersza lub  (poprawnym  gramatycznie)  słowem
       zarezerwowanym.  Przykładowo,
              { 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  podpowłoce.  Nie  ma bezpośredniej możliwości
              przekazania wartości parametrów podpowłoki  z  powrotem  do  jej
              powłoki macierzystej.

       { lista }
              Konstrukcja   złożona;   lista  zostaje  wykonana,  lecz  nie  w
              podpowłoce.  Zauważ, że { i }  to  zarezerwowane  słowa,  a  nie
              metaznaki.

       case sowo in [ [(] wzorzec [| wzorzec] ... ) lista ;; ] ... esac
              Wyrażenie  case  stara  się  dopasować sowo do jednego z danych
              wzorcw; wykonywana jest lista powiązana z  pierwszym  poprawnie
              dopasowanym   wzorcem.   Wzorce  stosowane  w  wyrażeniach  case
              odpowiadają wzorcom stosowanym do  specyfikacji  nazw  plików  z
              wyjątkiem tego, że nie obowiązują ograniczenia związane z . i /.
              Proszę zwrócić uwagę na to, że wszelkie niecytowane białe  znaki
              przed  wzorcem  i  po  nim  zostają usunięte; wszelkie spacje we
              wzorcu  muszą  być  cytowane.   Zarówno  słowa,  jak  i   wzorce
              podlegają  podstawieniom  parametrów, rozwinięciom arytmetycznym
              oraz podstawieniu  tyldy.   Ze  względów  historycznych,  możemy
              zastosować nawiasy otwierający i zamykający zamiast in i esac (w
              szczególności więc, case $foo { *) echo bar; }).  Kodem  wyjścia
              wyrażenia  case  jest  kod  wykonanej  listy;  jeśli nie została
              wykonana żadna lista, wówczas kod wyjścia wynosi zero.

       for nazwa [ in sowo ... zakoczenie ] do lista done
              gdzie zakoczenie jest albo znakiem końca linii,  albo  ;.   Dla
              każdego  sowa  w  podanej  liście  słów, parametr nazwa zostaje
              ustawiony na to słowo  i  lista  zostaje  wykonana.  Jeżeli  nie
              będzie  użyte  in  do  specyfikacji  listy słów, to zamiast tego
              zostaną  użyte  parametry  pozycyjne  ("$1",  "$2",  itp.).   Ze
              względów  historycznych, możemy zastosować nawiasy otwierający i
              zamykający zamiast do i done (w szczeglnoci, for i; { echo $i;
              }).   Kodem wyjścia wyrażenia for jest ostatni kod wyjścia danej
              listy; jeśli lista nie została w  ogóle  wykonana,  wówczas  kod
              wynosi zero.

       if lista then lista [elif lista then lista] ... [else lista] fi
              Jeśli  kod  wyjścia  pierwszej  listy  jest  zerowy,  to zostaje
              wykonana druga lista; w przeciwnym  razie,  jeśli  mamy  takową,
              zostaje  wykonana  lista  po  elif,  z podobnymi konsekwencjami.
              Jeśli wszystkie listy po if i  elif  wykażą  błąd  (tzn.  zwrócą
              niezerowy  kod),  to  zostanie  wykonana  lista  po else.  Kodem
              wyjścia wyrażenia if jest kod  wykonanej  listy,  niestanowiącej
              warunku.  Jeśli  żadna nieokreślająca warunku lista nie zostanie
              wykonana, wówczas kod wyjścia wynosi zero.

       select nazwa [ in sowo ... zakoczenie ] do lista done
              gdzie  zakoczenie  jest  albo  przełamaniem  wiersza,  albo  ;.
              Wyrażenie     select    umożliwia    automatyczną    prezentację
              użytkownikowi  menu,  wraz  z  możliwością   wyboru   z   niego.
              Przeliczona   lista   wykazanych   sw   zostaje   wypisana  na
              standardowym wyjściu błędów, po czym zostaje wyświetlony  symbol
              zachęty   (PS3,  czyli  domyślnie  `#?  ').   Następnie  zostaje
              wczytana  liczba   odpowiadająca   danemu   punktowi   menu   ze
              standardowego wejścia, po czym nazwie zostaje przyporządkowane w
              ten sposób wybrane słowo (lub wartość pusta,  jeżeli  wybór  był
              niewłaściwy),  zmiennej  REPLY  zostaje  przyporządkowane to, co
              zostało wczytane (po usunięciu początkowych i końcowych  białych
              znaków),  i  lista  zostaje  wykonana.   Jeśli wprowadzono pustą
              linię (dokładniej: zero lub więcej znaczków IFS),  wówczas  menu
              zostaje   ponownie  wyświetlone,  bez  wykonywania  listy.   Gdy
              wykonanie listy zostaje zakończone,  wówczas  przeliczona  lista
              wyborów  zostaje  wyświetlona ponownie, jeśli REPLY jest zerowe,
              ponownie wyświetlany jest symbol zachęty i  tak  dalej.   Proces
              ten  się powtarza, aż do wczytania znaku końca pliku, otrzymania
              sygnału przerwania lub wykonania polecenia przerwania (break)  w
              środku  pętli.   Jeśli  opuszczono  in  sowo ..., wówczas użyte
              zostają  parametry  pozycyjne  (tzn.,  "$1",  "$2",  itp.).   Ze
              względów  historycznych, możemy zastosować nawiasy otwierający i
              zamykający zamiast do i done (w szczeglnoci, select i; {  echo
              $i;  }).   Kodem wyjścia wyrażenia select jest zero, jeśli użyto
              polecenia  przerwania  do  wyjścia  z  pętli  albo   niezero   w
              przeciwnym wypadku.

       until lista do lista done
              Działa dokładnie jak while, z wyjątkiem tego, że zawartość pętli
              jest wykonywana jedynie wtedy, gdy kod wyjścia  pierwszej  listy
              jest niezerowy.

       while lista do lista done
              Wyrażenie  while  określa  pętlę  o  warunku  sprawdzanym  przed
              wykonaniem. Zawartość pętli jest wykonywana dopóki,  dopóty  kod
              wyjścia  pierwszej  listy  jest zerowy.  Kodem wyjścia wyrażenia
              while jest ostatni kod wyjścia listy w zawartości tej pętli; gdy
              zawartość  nie  zostanie  w  ogóle  wykonana, wówczas kod wynosi
              zero.

       function nazwa { lista }
              Definiuje funkcję o nazwie  nazwa.   Patrz:  "Funkcje"  poniżej.
              Proszę zwrócić uwagę, że przekierowania tuż po definicji funkcji
              zostają zastosowane podczas wykonywania jej  zawartości,  a  nie
              podczas przetwarzania jej definicji.

       nazwa () polecenie
              Niemal  dokładnie  to  samo  co  w  function.   Patrz: "Funkcje"
              poniżej.

       (( wyraenie ))
              Wartość wyrażenia arytmetycznego wyraenie zostaje  przeliczona;
              równoważne  do let "wyraenie".  patrz: "Wyrażenia arytmetyczne"
              i opis polecenia let poniżej..

       [[ expression ]]
              Podobne do komend test i [ ... ] (które  opisujemy  później),  z
              następującymi różnicami:
                o    Rozdzielanie   pól   i   generacja  nazw  plików  nie  są
                     wykonywane na argumentach.
                o    Operatory  -a  (i)  oraz  -o  (lub)  zostają   zastąpione
                     odpowiednio przez && i ||.
                o    Operatory  (dokadniej:  -f,  =,  !,  itp.)  nie mogą być
                     cytowane.
                o    Drugi operand dla != i = jest traktowany jako wzorzec  (w
                     szczeglnoci, porównanie
                                        [[ foobar = f*r ]]
                     jest sukcesem).
                o    Mamy  do  dyspozycji dwa dodatkowe operatory binarne: < i
                     >, które zwracają prawdę, gdy pierwszy łańcuchowy operand
                     jest   odpowiednio   mniejszy  lub  większy  od  drugiego
                     operandu łańcuchowego.
                o    Jednoargumentowa postać operacji  test,  która  sprawdza,
                     czy   jedyny   operand   jest   długości   zerowej,  jest
                     niedozwolona -  operatory  zawsze  muszę  być  wykazywane
                     jawnie, w szczeglnoci, zamiast
                                             [ cig ]
                     należy użyć
                                           [[ -n cig ]]
                o    Podstawienia  parametrów,  komend  i arytmetyczne zostają
                     wykonane w trakcie wyliczania wyrażenia. Do operatorów &&
                     i  ||  stosowana jest metoda uproszczonego określania ich
                     wartości.  To znaczy, że w wyrażeniu
                                  [[ -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 powłokę pewnych
       znaków czy słów w specjalny sposób.  Istnieją trzy metody cytowania: Po
       pierwsze,  \  cytuje  następny  znak,  chyba  że mieści się on na końcu
       wiersza, wówczas zarówno \ jak i znak nowej linii zostają usunięte.  Po
       drugie  pojedynczy  cudzysłów (') wycytowywuje wszystko, aż po następny
       pojedynczy cudzysłów (wraz ze zmianami linii  włącznie).   Po  trzecie,
       podwójny  cudzysłów (") wycytowywuje wszystkie znaki, poza $, ` i \, aż
       po następny niecytowany podwójny cudzysłów.  $ i ` wewnątrz  podwójnych
       cudzysłowów  zachowują  zwykłe  znaczenie (tzn.  oznaczają podstawienie
       wartości parametru, komendy lub wyrażenia arytmetycznego), jeśli  tylko
       nie  zostanie  wykonany  jakikolwiek  podział  pól na wyniku podwójnymi
       cudzysłowami wycytowanych  podstawień.   Jeśli  po  \,  wewnątrz  ciągu
       znaków  cytowanego  podwójnymi cudzysłowami następuje \, $, ` lub ", to
       zostaje on zastąpiony drugim z tych znaków.   Jeśli  po  nim  następuje
       znak  nowej  linii,  wówczas zarówno \, jak i znak zmiany linii zostają
       usunięte; w przeciwnym razie zarówno znak \, jak i następujący  po  nim
       znak nie podlegają żadnej zamianie.

       Uwaga:  patrz  "Tryb  POSIX"  poniżej  pod  względem szczególnych reguł
       obowiązujących sekwencje znaków postaci "...`...\"...`..".

   Aliasy
       Istnieją dwa rodzaje aliasów: normalne aliasy komend i aliasy śledzone.
       Aliasy  komend  stosowane  są  zwykle  jako skróty dla długich a często
       stosowanych komend.  Powłoka rozwija aliasy komend (tzn.  podstawia pod
       nazwę  aliasu  jego  zawartość),  gdy  wczytuje pierwsze słowo komendy.
       Rozwinięty  alias  zostaje  ponownie   przetworzony,   aby   uwzględnić
       ewentualne  występowanie  dalszych aliasów.  Jeśli alias komendy kończy
       się spacją lub tabulatorem, to wówczas następne słowo  zostaje  również
       sprawdzone  pod względem rozwinięcia aliasów. Proces rozwijania aliasów
       kończy się przy napotkaniu słowa, które nie jest aliasem,  gdy  napotka
       się  wycytowane  słowo,  lub  gdy napotka się alias, który jest właśnie
       eksportowany.

       Następujące aliasy są definiowane domyślnie przez powłokę:
              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ą powłoce na zapamiętanie, gdzie odnalazła  ona
       konkretną komendę.  Gdy powłoka po raz pierwszy szuka w ścieżce pocenia
       oznaczonego jako alias śledzony, to zapamiętuje sobie pełną ścieżkę tej
       komendy.   Gdy  powłoka  następnie  wykonuje daną komendę po raz drugi,
       wówczas sprawdza, czy ta ścieżka jest nadal aktualna i jeśli tak  jest,
       to  nie  przegląda  już  więcej  pełnej  ścieżki  w  poszukiwaniu danej
       komendy.  Śledzone aliasy można wyświetlić lub stworzyć stosując  alias
       -t.  Zauważ,  że  zmieniając  wartość  parametru  PATH czyścimy również
       ścieżki dla wszelkich śledzonych aliasów.  Jeśli została włączona opcja
       trackall  (tzn.,  set  -o  trackall lub set -h), wówczas powłoka śledzi
       wszelkie komendy.  Ta opcja zostaje włączona  domyślnie  dla  wszelkich
       nieinterakcyjnych    powłok.    Dla   powłok   interakcyjnych   jedynie
       następujące komendy są śledzone domyślnie: cat, cc,  chmod,  cp,  date,
       ed, emacs, grep, ls, mail, make, mv, pr, rm, sed, sh, vi i who.

   Podstawienia
       Pierwszym  krokiem,  jaki  wykonuje powłoka podczas wykonywania prostej
       komendy,  jest  przeprowadzenia  podstawień  na  słowach  tej  komendy.
       Istnieją  trzy  rodzaje  podstawień: parametrów, komend i arytmetyczne.
       Podstawienia parametrów, które dokładniej opiszemy w następnej  sekcji,
       mają   postać   $name  lub  ${...};  podstawienia  komend  mają  postać
       $(command) lub `command`; a podstawienia arytmetyczne: $((expression)).

       Jeśli  podstawienie  występuje  poza  podwójnymi  cudzysłowami, wówczas
       wynik tego podstawienia podlega  zwykle  podziałowi  słów  lub  pól,  w
       zależności  od  bieżącej  wartości parametru IFS.  Parametr IFS określa
       listę znaków, służących jako separatory w podziale łańcuchów  znakowych
       na  pojedyncze  wyrazy.   Wszelkie znaki z tego zestawu oraz tabulator,
       spacja i nowa linia włącznie, nazywane są biaymi znakami  IFS.   Ciągi
       jednego lub wielu białych znaków z IFS w powiązaniu z zerem oraz jednym
       lub więcej białych znaków nie wymienionych w IFS,  rozgraniczają  pola.
       Wyjątkowo  początkowe i końcowe białe znaki IFS są usuwane (tzn. nie są
       przez nie tworzone żadne początkowe czy końcowe puste pola);  natomiast
       początkowe  lub  końcowe  białe  znaki  spoza  IFS  tworzą  puste pola.
       Przykładowo:  jeśli   IFS   zawiera   `<spacja>:',   to   ciąg   znaków
       `<spacja>A<spacja>:<spacja><spacja>B::D' zawiera cztery pola: `A', `B',
       `' i `D'.  Proszę zauważyć, że jeśli parametr  IFS  jest  ustawiony  na
       pusty  ciąg  znaków,  to  wówczas żaden podział pól nie ma miejsca; gdy
       parametr ten nie jest ustawiony w ogóle, wówczas stosuje się  domyślnie
       jako rozgraniczniki spacji, tabulatora i nowej linii.

       Jeśli  nie  podajemy  inaczej,  to  wynik  podstawienia podlega również
       rozwijaniu nawiasów i nazw plików (patrz odpowiednie akapity  poniżej).

       Podstawienie komendy zostaje zastąpione wyjściem, wygenerowanym podczas
       wykonania danej komendy przez podpowłokę.  Dla podstawienia  $(komenda)
       zachodzą normalne reguły cytowania podczas analizy komendy, choć jednak
       dla postaci `komenda`, znak \ z jednym z $, ` lub \ tuż po nim, zostaje
       usunięty  (znak  \  z  następstwem  jakiegokolwiek innego znaku zostaje
       niezmieniony).  Jako przypadek wyjątkowy podczas  podstawiania  komend,
       komenda  postaci  <  plik   zostaje  zinterpretowana,  jako oznaczająca
       podstawienie zawartości pliku plik ($(< foo) ma więc ten sam  efekt  co
       $(cat  foo),  jest  jednak  bardziej  efektywne  albowiem  nie  zostaje
       odpalony żaden dodatkowy proces).
       UWAGA: Wyrażenia $(komenda) są analizowane obecnie poprzez odnajdywanie
       zaległego  nawiasu,  niezależnie  od  wycytowań.  Miejmy  nadzieję,  że
       zostanie to możliwie szybko poprawione.

       Podstawienia arytmetyczne zostają zastąpione  wartością  wyniku  danego
       wyrażenia.   Przykładowo  więc,  komenda  echo $((2+3*4)) wyświetla 14.
       Patrz: "Wyrażenia arytmetyczne", aby odnaleźć opis wyrae.

   Parametry
       Parametry to zmienne w powłoce;  można  im  przyporządkowywać  wartości
       oraz wyczytywać je przez podstawienia parametrów.  Nazwa parametru jest
       albo jednym ze  znaków  interpunkcyjnych  o  specjalnym  znaczeniu  lub
       cyfrą,  jakie  opisujemy  poniżej,  lub literą z następstwem jednej lub
       więcej liter albo  cyfr  (`_'  zalicza  się  to  liter).   Podstawienia
       parametrów  mają  postać  $nazwa  lub  ${nazwa}, gdzie nazwa jest nazwą
       danego parametru.  Gdy podstawienie zostanie  wykonane  na  parametrze,
       który  nie  został  ustalony,  wówczas  zerowy  ciąg  znaków  jest jego
       wynikiem, chyba że została włączona opcja nounset (set -o  nounset  lub
       set -u), co oznacza, że występuje wówczas błąd.

       Wartości  można przyporządkowywać parametrom na wiele różnych sposobów.
       Po pierwsze, powłoka domyślnie ustala pewne  parametry,  takie  jak  #,
       PWD,  itp.; to jedyny sposób, w jaki są ustawiane specjalnymi parametry
       o długości jednego znaku. Po drugie, parametry  zostają  importowane  z
       otocznia powłoki podczas jej uruchamiania. Po trzecie, parametrom można
       przypisać wartości w wierszu poleceń, tak jak np.  `FOO=bar' przypisuje
       parametrowi  FOO  wartość  bar;  wielokrotne  przypisania  wartości  są
       możliwe w jednym wierszu komendy  i  może  po  nich  występować  prosta
       komenda,  co  powoduje,  że  przypisania te są wówczas jedynie aktualne
       podczas wykonywania danej komendy  (tego  rodzaju  przypisania  zostają
       również  wyeksportowane,  patrz  poniżej,  co  do  tego  konsekwencji).
       Proszę zwrócić uwagę, iż aby powłoka  rozpoznała  je  jako  przypisanie
       wartości  parametrowi,  zarówno  nazwa  parametru  jak i = nie mogą być
       cytowane.  Czwartym sposobem ustawiania  parametrów  jest  zastosowanie
       jednej  z  komend:  export,  readonly  lub  typeset;  patrz ich opisy w
       rozdziale  "Wykonywanie  komend".   Po  czwarte,  pętle  for  i  select
       ustawiają  parametry, tak jak i również komendy getopts, read i set -A.
       Na zakończenie, parametrom można  przyporządkowywać  wartości  stosując
       operatory  nadania  wartości  wewnątrz  wyrażeń  arytmetycznych (patrz:
       "Wyrażenia arytmetyczne" poniżej) lub stosując postać  ${nazwa=warto}
       podstawienia parametru (patrz poniżej).

       Parametry  opatrzone  atrybutem  eksportowania (ustawianego przy pomocy
       komendy export lub typeset -x  albo  przez  przyporządkowanie  wartości
       parametru z następującą prostą komendą) zostają umieszczone w otoczeniu
       (patrz  environ(5))  poleceń  wykonywanych  przez  powłokę  jako   pary
       nazwa=warto.   Kolejność,  w  jakiej  parametry występują w otoczeniu
       komendy  jest  bliżej  nieustalona.    Podczas   uruchamiania   powłoka
       pozyskuje  parametry  ze  swojego  otoczenia i automatycznie ustawia na
       tych parametrach atrybut eksportowania.

       Można stosować modyfikatory do postaci ${nazwa} podstawienia parametru:

       ${nazwa:-sowo}
              jeżeli parametrnazwa jest ustawiony i niezerowy, wówczas zostaje
              podstawiona jego własna  wartość,  w  przeciwnym  razie  zostaje
              podstawione sowo.

       ${nazwa:+sowo}
              jeśli parametr nazwa jest ustawiony i niezerowy, wówczas zostaje
              podstawione sowo, inaczej nic nie zostaje podstawione.

       ${nazwa:=sowo}
              jeśli parametr nazwa jest ustawiony i niezerowy, wówczas zostaje
              podstawiony    on   sam,   w   przeciwnym   razie   zostaje   mu
              przyporządkowana wartość sowo i  wartość  wynikająca  ze  sowa
              zostaje podstawiona.

       ${nazwa:?sowo}
              jeżeli  parametr  nazwa  jest  ustawiony  i  niezerowy,  wówczas
              zostaje podstawiona jego  własna  wartość,  w  przeciwnym  razie
              sowo zostaje wyświetlone na standardowym wyjściu błędów (tuż po
              nazwa:) i zachodzi błąd (powodujący normalnie zakończenie całego
              skryptu  powłoki,  funkcji  lub .-skryptu).  Jeśli słowo zostało
              pominięte,  wówczas  zamiast   niego   zostaje   użyty   łańcuch
              `parameter null or not set'.

       W  powyższych modyfikatorach możemy ominąć :, czego skutkiem będzie, że
       warunki będą jedynie wymagać, aby nazwa był ustawiony lub  nie  (a  nie
       żeby  był  ustawiony i niezerowy).  Jeśli potrzebna jest wartość sowo,
       wówczas  zostają  na  nim  wykonane  podstawienia  parametrów,  komend,
       arytmetyczne  i  tyldy;  natomiast, jeśli sowo okaże się niepotrzebne,
       wówczas jego wartość nie zostanie obliczana.

       Można stosować, również podstawienia parametrów o następującej postaci:

       ${#nazwa}
              Liczba  parametrów  pozycyjnych,  jeśli  nazw jest *, @ lub nie
              jest podana albo  długość  ciągu  będącego  wartością  parametru
              nazwa.

       ${#nazwa[*]}, ${#nazwa[@]}
              Liczba elementów w tablicy nazwa.

       ${nazwa#wzorzec}, ${nazwa##wzorzec}
              Gdy  wzorzec  nakłada  się na początek wartości parametru nazwa,
              wówczas pasujący tekst zostaje pominięty w  wynikającym  z  tego
              podstawieniu.    Pojedynczy   #   oznacza   najkrótsze   możliwe
              dopasowanie  do  wzorca,  a  dwa  #  oznaczają  jak   najdłuższe
              dopasowanie.

       ${nazwa%wzorzec}, ${nazwa%%wzorzec}
              Podobnie  jak  w  podstawieniu  ${..#..}, tylko że dotyczy końca
              wartości.

       Następujące  specjalne  parametry  zostają  ustawione  domyślnie  przez
       powłokę i nie można przyporządkowywać jawnie wartości nadanych:

       !      Id   ostatniego  uruchomionego  w  tle  procesu.  Jeśli  nie  ma
              aktualnie procesów uruchomionych w  tle,  wówczas  parametr  ten
              jest nieustawiony.

       #      Liczba parametrów pozycyjnych (tzn., $1, $2, itp.).

       $      ID  procesu  odpowiadającego  danej  powłoce  lub PID pierwotnej
              powłoki, jeśli mamy do czynienia z podpowłoką.

       -      Konkatenacja bieżących opcji jednoliterowych (patrz komenda  set
              poniżej, aby poznać dostępne opcje).

       ?      Kod  wyjścia  ostatniej  wykonanej  komendy  nieasynchronicznej.
              Jeśli ostatnia  komenda  została  zabita  sygnałem,  wówczas  $?
              przyjmuje wartość 128 plus numer danego sygnału.

       0      Nazwa,  pod  jaką dana powłoka została wywołana (tzn., argv[0]),
              lub nazwa komendy, która została wywołana przy użyciu opcji -c i
              nazwa  komendy  została  podana,  lub  argument plik, jeśli taki
              został podany.  Jeśli opcja posix  nie  jest  ustawiona,  to  $0
              zawiera nazwę bieżącej funkcji lub skryptu.

       1 ... 9
              Pierwszych  dziewięć parametrów pozycyjnych podanych powłoce czy
              funkcji  lub  .-skryptowi.   Dostęp   do   dalszych   parametrów
              pozycyjnych odbywa się przy pomocy ${liczba}.

       *      Wszystkie  parametry  pozycyjne (z wyjątkiem parametru 0), tzn.,
              $1 $2 $3....  Gdy użyte poza  podwójnymi  cudzysłowami,  wówczas
              parametry  zostają rozgraniczone w pojedyncze słowa (podlegające
              rozgraniczaniu   słów);   jeśli   użyte   pomiędzy    podwójnymi
              cudzysłowami,  wówczas parametry zostają rozgraniczone pierwszym
              znakiem podanym przez parametr IFS (albo pustymi ciągami znaków,
              jeśli IFS jest zerowy).

       @      Tak  jak $*, z wyjątkiem zastosowania w podwójnych cudzysłowach,
              gdzie oddzielne słowo zostaje wygenerowane dla każdego parametru
              pozycyjnego  z  osobna  -  jeśli  brak  parametrów  pozycyjnych,
              wówczas nie generowane jest żadne słowo ("$@" może być użyte aby
              otrzymać  dostęp bezpośredni do argumentów bez utraty argumentów
              zerowych lub rozgraniczania ich przerwami).

       Następujące parametry są ustawiane przez powłokę:

       _ (podkrelenie)
              Gdy jakaś komenda zostaje wykonywana przez powłokę, ten parametr
              przyjmuje  w  otoczeniu  odpowiedniego  nowego  procesu  wartość
              ścieżki tej komendy.  W interakcyjnym trybie pracy, ten parametr
              przyjmuje  w pierwotnej powłoce ponadto wartość ostatniego słowa
              poprzedniej  komendy  Podczas  wartościowania  wiadomości   typu
              MAILPATH,  parametr  ten  zawiera  więc  nazwę  pliku, który się
              zmienił (patrz parametr MAILPATH poniżej).

       CDPATH Ścieżka przeszukiwania dla wbudowanej komendy  cd.   Działa  tak
              samo  jak  PATH  dla  katalogów  nierozpoczynających  się od / w
              komendach cd.   Proszę  zwrócić  uwagę,  że  jeśli  CDPATH  jest
              ustawiony  i  nie  zawiera  ani . ani ścieżki pustej, to wówczas
              katalog bieżący nie jest przeszukiwany.

       COLUMNS
              Liczba  kolumn  terminala  lub   okienka.    Obecnie   ustawiany
              wartością  cols zwracaną przez komendę stty(1), jeśli ta wartość
              nie jest równa zeru.  Parametr ten ma znaczenie w  interakcyjnym
              trybie  edycji  wiersza komendy i dla komend select, set -o oraz
              kill -l, w celu właściwego formatowania zwracanych informacji.

       EDITOR Jeśli nie został ustawiony parametr VISUAL,  wówczas  kontroluje
              on  tryb  edycji  wiersza  komendy  w  powłokach interakcyjnych.
              Patrz parametr  VISUAL  poniżej,  aby  się  dowiedzieć,  jak  to
              działa.

       ENV    Jeśli  parametr  ten  okaże  się być ustawionym po przetworzeniu
              wszelkich plików profilowych, wówczas  jego  rozwinięta  wartość
              zostaje  wykorzystana  jako  nazwa  pliku  zawierającego  dalsze
              komendy inicjujące powłoki. Zwykle zawiera definicje  funkcji  i
              aliasów.

       ERRNO  Całkowita   wartość  odpowiadająca  zmiennej  errno  powłoki  --
              wskazuje przyczynę wystąpienia  błędu,  gdy  ostatnie  wywołanie
              systemowe nie powiodło się.

              Jak dotychczas niezaimplementowane.

       EXECSHELL
              Jeśli  ustawiono, to wówczas zawiera powłokę, jakiej należy użyć
              do wykonywania komend, których nie zdołał wykonać  execve(2),  a
              które nie zaczynają się od ciągu `#! powoka'.

       FCEDIT Edytor używany przez komendę fc (patrz poniżej).

       FPATH  Podobnie  jak  PATH,  jeśli  powłoka  natrafi na niezdefiniowaną
              funkcję  podczas   pracy,   stosowane   do   lokalizacji   pliku
              zawierającego definicję tej funkcji.  Również przeszukiwane, gdy
              komenda  nie  została  odnaleziona  przy  użyciu  PATH.    Patrz
              "Funkcje" poniżej co do dalszych informacji.

       HISTFILE
              Nazwa  pliku używanego do zapisu historii komend.  Jeśli wartość
              została ustalona, wówczas historia zostaje załadowana  z  danego
              pliku.  Podobnie wielokrotne wcielenia powłoki będą korzystały z
              jednej historii, jeśli  dla  nich  wartości  parametru  HISTFILE
              wskazuje na jeden i ten sam plik.
              UWAGA:  jeśli HISTFILE nie zostało ustawione, wówczas żaden plik
              historii nie zostaje użyty. W oryginalnej wersji  powłoki  Korna
              natomiast,   przyjmuje   się   domyślnie   $HOME/.sh_history;  w
              przyszłości może pdksh, będzie również  stosował  domyślny  plik
              historii.

       HISTSIZE
              Liczba komend zapamiętywana w historii, domyślnie 128.

       HOME   Domyślna   wartość   dla   komendy   cd   oraz  podstawiana  pod
              niewycytowane ~ (patrz: "Rozwijanie tyldy" poniżej).

       IFS    Wewnętrzny  separator  pól,  stosowany  podczas   podstawień   i
              wykonywania  komendy read, do rozdzielania wartości na oddzielne
              argumenty; domyślnie spacja, tabulator  i  przełamanie  wiersza.
              Szczegóły zostały opisane w punkcie "Podstawienia" powyżej.
              Uwaga:  ten  parametr  nie jest importowany z otoczenia, podczas
              uruchamiania powłoki.

       KSH_VERSION
              Wersja i data kompilacji  powłoki  (tylko  do  odczytu).   Patrz
              również  na  komendy  wersji  w  "Interakcyjnej  edycji  wiersza
              poleceń w trybie emacs" i "Edycji wiersza poleceń vi" poniżej.

       LINENO Numer wiersza w funkcji lub aktualnie wykonywanym skrypcie.

       LINES  Ilość wierszy terminala lub okienka pracy.

              Jeszcze niezaimplementowane.

       MAIL   Jeśli ustawiony, to  użytkownik  jest  informowany  o  nadejściu
              nowej  poczty do wymienionego w tej opcji pliku docelowego.  Ten
              parametr  jest  ignorowany,  jeśli  został  ustawiony   parametr
              MAILPATH.

       MAILCHECK
              Jak  często powłoka ma sprawdzać, czy pojawiła się nowa poczta w
              plikach podanych przez MAIL lub MAILPATH.  Jeśli 0,  to  powłoka
              sprawdza  przed każdą nową zachętą.  Wartością domyślną jest 600
              (10 minut).

       MAILPATH
              Lista plików sprawdzanych w poszukiwaniu nowej poczty. Lista  ta
              rozdzielana jest dwukropkami, ponadto po nazwie każdego z plików
              można podać ? i  wiadomość,  która  ma  być  wyświetlona,  jeśli
              nadeszła  nowa  poczta.   Dla  danej wiadomości zostaną wykonane
              podstawienia  komend,   parametrów   i   arytmetyczne.   Podczas
              podstawień  parametr  $_  zawiera  nazwę  tego pliku.  Domyślnym
              zawiadomieniem o nowej poczcie jest you have mail  in  $_  (masz
              pocztę w $_).

       OLDPWD Poprzedni katalog roboczy.  Nieustalony, jeśli cd nie zmieniło z
              powodzeniem katalogu od czasu  uruchomienia  powłoki  lub  jeśli
              powłoka nie wie, gdzie się aktualnie znajduje.

       OPTARG Podczas   używania   getopts   zawiera  argument  dla  aktualnie
              rozpoznawanej opcji, jeśli jest on oczekiwany.

       OPTIND Indeks  ostatniego  przetworzonego  argumentu  podczas  używania
              getopts.   Przyporządkowanie  1  temu  parametrowi spowoduje, że
              ponownie wywołane getopts przetworzy argumenty od początku.

       PATH   Lista   rozdzielonych   dwukropkiem    katalogów,    które    są
              przeszukiwane  podczas  odnajdywania  jakiejś komendy lub plików
              typu .. Pusty łańcuch wynikający z  początkowego  lub  końcowego
              dwukropka, albo dwóch sąsiednich dwukropków jest traktowany jako
              `.', czyli katalog bieżący.

       POSIXLY_CORRECT
              Ustawienie  tego  parametru  powoduje  włączenie  opcji   posix.
              Patrz: "Tryb POSIX" poniżej.

       PPID   Identyfikator  ID  procesu  rodzicielskiego  powłoki  (tylko  do
              odczytu).

       PS1    PS1 to podstawowy  symbol  zachęty  dla  powłok  interakcyjnych.
              Podlega   podstawieniom   parametrów,  komend  i  arytmetycznym,
              ponadto ! zostaje zastąpione kolejnym numerem  polecenia  (patrz
              komenda  fc  poniżej).  Sam  znak  !  może  zostać umieszczony w
              zachęcie używając !! w PS1.  Zauważ, że ponieważ edytory wiersza
              komendy starają się obliczyć, jak długi jest symbol zachęty (aby
              móc ustalić, ile miejsca pozostaje  wolnego  do  prawego  brzegu
              ekranu),  sekwencje  wyjściowe  w  zachęcie  zwykle  wprowadzają
              pewien bałagan.  Istnieje możliwość podpowiedzenia powłoce, żeby
              nie uwzględniała pewnych ciągów znaków (takich jak kody wyjścia)
              przez podanie przedrostka na początku symbolu  zachęty  będącego
              niewyświetlalnym znakiem (takim jak np. control-A) z następstwem
              przełamania wiersza oraz odgraniczając  następnie  kody  wyjścia
              przy    pomocy   tego   niewyświetlalnego   znaku.    Gdy   brak
              niewyświetlalnych znaków, to nie  ma  żadnej  rady...   Nawiasem
              mówiąc,  nie ja jestem odpowiedzialny za ten hack. To pochodzi z
              oryginalnego   ksh.    Domyślną   wartością   jest   `$ '    dla
              nieuprzywilejowanych użytkowników, a `# ' dla roota..

       PS2    Drugorzędna  zachęta,  o  domyślnej  wartości  `>  ', która jest
              stosowana,  gdy  wymagane  są   dalsze   wprowadzenia   w   celu
              dokończenia komendy.

       PS3    Zachęta  stosowana  przez  wyrażenie  select podczas wczytywania
              wyboru z menu.  Domyślnie `#? '.

       PS4    Stosowany jako przedrostek  komend,  które  zostają  wyświetlone
              podczas  śledzenia  toku pracy (patrz polecenie set -x poniżej).
              Domyślnie `+ '.

       PWD    Obecny katalog roboczy. Może być nieustawiony lub zerowy,  jeśli
              powłoka nie wie, gdzie się znajduje.

       RANDOM Prosty  generator  liczb  pseudolosowych.  Za  każdym razem, gdy
              odnosimy się do RANDOM, jego wartości  zostaje  przyporządkowana
              następna  liczba  z  przypadkowego ciągu liczb.  Miejsce w danym
              ciągu  może  zostać  ustawione  nadając  wartość  RANDOM  (patrz
              rand(3)).

       REPLY  Domyślny  parametr  komendy read, jeśli nie pozostaną podane jej
              żadne nazwy.  Stosowany  również  w  pętlach  select  do  zapisu
              wartości wczytywanej ze standardowego wejścia.

       SECONDS
              Liczba  sekund, które upłynęły od czasu uruchomienia powłoki lub
              jeśli  parametrowi  została  nadana  wartość  całkowita,  liczba
              sekund od czasu nadania tej wartości plus ta wartość.

       TMOUT  Gdy  ustawiony  na pozytywną wartość całkowitą, większą od zera,
              wówczas ustala w interakcyjnej powłoce czas w  sekundach,  przez
              jaki  będzie  ona  czekała na wprowadzenie jakiegoś polecenia po
              wyświetleniu   podstawowego   symbolu    zachęty    (PS1).    Po
              przekroczeniu tego czasu powłoka zakończy swoje działanie.

       TMPDIR Katalog,  w  którym  umieszczane  są  tymczasowe  pliki powłoki.
              Jeśli parametr ten nie jest ustawiony lub gdy nie zawiera pełnej
              ścieżki  do zapisywalnego katalogu, wówczas domyślnie tymczasowe
              pliki mieszczą się w /tmp.

       VISUAL Jeśli został ustawiony, ustala  tryb  edycji  wiersza  komend  w
              powłokach  interakcyjnych. Jeśli ostatni element ścieżki podanej
              w tym parametrze zawiera ciąg znaków vi,  emacs  lub  gmacs,  to
              odpowiednio zostaje uaktywniony tryb edycji: vi, emacs lub gmacs
              (Gosling emacs).

   Rozwijanie tyldy
       Rozwijanie znaków tyldy, które  ma  miejsce  równolegle  do  podstawień
       parametrów,   zostaje   wykonane   na   słowach   rozpoczynających  się
       niecytowanym ~. Znaki po tyldzie do pierwszego /, jeśli taki występuje,
       są   domyślnie   traktowane   jako   nazwa  użytkownika.   Jeśli  nazwa
       użytkownika jest pusta lub ma wartość + albo -, to zostaje  podstawiona
       wartość parametrów odpowiednioHOME, PWD lub OLDPWD.  W przeciwnym razie
       zostaje przeszukany plik haseł (plik passwd) w celu odnalezienia  danej
       nazwy  użytkownika  i  w  miejscu wystąpienia tyldy zostaje podstawiony
       katalog  domowy  danego  użytkownika.   Jeśli  nazwa  użytkownika   nie
       zostanie  odnaleziona  w  pliku  haseł  lub  gdy  w  nazwie użytkownika
       występuje jakiekolwiek cytowanie albo podstawienie  parametru,  wówczas
       nie zostaje wykonane żadne podstawienie.

       W ustawieniach parametrów (tych poprzedzających proste komendy lub tych
       występujących w argumentach dla alias, export,  readonly,  i  typeset),
       rozwijanie    znaków    tyld   zostaje   wykonywane   po   jakimkolwiek
       niewycytowanym (:) i nazwy użytkowników zostają ujęte w dwukropki.

       Katalogi  domowe  poprzednio  rozwiniętych  nazw  użytkowników  zostają
       umieszczone w pamięci podręcznej i przy ponownym użyciu zostają stamtąd
       pobierane. Komenda alias -d może być użyta do  wylistowania,  zmiany  i
       dodania   do   tej  pamięci  podręcznej  (w  szczeglnoci,  `alias  -d
       fac=/usr/local/facilities; cd ~fac/bin').

   Rozwijanie nawiasów (przemiany)
       Rozwinięcia nawiasów przyjmujące postać
              prefiks{cig1,...,cigN}sufiks
       zostają rozwinięte w N wyrazów, z których  każdy  zawiera  konkatenację
       prefiks,  cign  i  sufiks  (w szczeglnoci., `a{c,b{X,Y},d}e' zostaje
       rozwinięte do czterech wyrazów: ace, abXe, abYe i ade).  Jak już  wyżej
       wspomniano,  rozwinięcia  nawiasów  mogą  być  nakładane  na  siebie, a
       wynikające słowa nie są sortowane.  Wyrażenia nawiasowe muszą  zawierać
       niecytowany  przecinek  (,),  aby  nastąpiło  rozwijanie (tak wic {} i
       {foo} nie  zostają  rozwinięte).   Rozwinięcie  nawiasów  następuje  po
       podstawieniach parametrów i przed generowaniem nazw plików.

   Wzorce nazw plików
       Wzorcem   nazwy   pliku  jest  słowo  zwierające  jeden  lub  więcej  z
       niecytowanych symboli  ?  lub  *  lub  sekwencji  [..].   Po  wykonaniu
       rozwinięcia   nawiasów,   powłoka   zamienia   wzorce  nazw  plików  na
       uporządkowane nazwy plików, które pasują do tego  wzorca  (jeśli  żadne
       pliki  nie  pasują, wówczas dane słowo zostaje pozostawione bez zmian).
       Elementy wzorców mają następujące znaczenia:

       ?      oznacza dowolny pojedynczy znak.

       *      oznacza dowolną sekwencję znaków.

       [..]   oznacza każdy ze znaków pomiędzy klamrami. Można  podać  zakresy
              znaków używając - pomiędzy dwoma ograniczającymi zakres znakami,
              tzn.   [a0-9]  oznacza  literę  a  lub   dowolną   cyfrę.    Aby
              przedstawić sam znak - należy go albo zacytować albo musi być to
              pierwszy lub ostatni znak w liście znaków. Podobnie ] musi  albo
              być  wycytowywane,  albo  być  pierwszym  lub ostatnim znakiem w
              liście, jeśli ma  oznaczać  samego  siebie,  a  nie  zakończenie
              listy.  Również  !  występujący  na  początku listy ma specjalne
              znaczenie (patrz poniżej), tak  więc  aby  reprezentował  samego
              siebie musi zostać wycytowany lub występować dalej w liście.

       [!..]  podobnie  jak [..], tylko że oznacza dowolny znak niewystępujący
              pomiędzy klamrami.

       *(wzorzec| ... |wzorzec)
              oznacza  każdy  ciąg  zawierający  zero  lub  więcej   wystąpień
              podanych  wzorców.   Przykładowo:  wzorzec  *(foo|bar)  obejmuje
              ciągi `', `foo', `bar', `foobarfoo', itp..

       +(wzorzec| ... |wzorzec)
              obejmuje każdy ciąg znaków obejmujący jedno lub więcej wystąpień
              danych  wzorców.  Przykładowo: wzorzec +(foo|bar) obejmuje ciągi
              `foo', `bar', `foobarfoo', itp..

       ?(wzorzec| ... |wzorzec)
              oznacza ciąg pusty lub ciąg obejmujący jeden z  danych  wzorców.
              Przykładowo: wzorzec ?(foo|bar) obejmuje jedynie ciągi `', `foo'
              i `bar'.

       @(wzorzec| ... |wzorzec)
              obejmuje ciąg obejmujący jeden z podanych wzorców.  Przykładowo:
              wzorzec @(foo|bar) obejmuje wyłącznie ciągi `foo' i `bar'.

       !(wzorzec| ... |wzorzec)
              obejmuje  dowolny  ciąg nie obejmujący żadnego z danych wzorców.
              Przykładowo: wzorzec !(foo|bar) obejmuje  wszystkie  ciągi  poza
              `foo'  i `bar'; wzorzec !(*) nie obejmuje żadnego ciągu; wzorzec
              !(?)* obejmuje wszystkie ciągi (proszę się nad tym  zastanowić).

       Proszę zauważyć, że wzorce w pdksh obecnie nigdy nie obejmują . i .., w
       przeciwieństwie do oryginalnej powłoki ksh, Bourne'a sh  i  basha,  tak
       więc to będzie musiało się ewentualnie zmienić (na złe).

       Proszę zauważyć, że powyższe elementy wzorców nigdy nie obejmują kropki
       (.) na początku nazwy pliku ani ukośnika (/),  nawet  gdy  zostały  one
       podane  jawnie  w  sekwencji  [..];  ponadto nazwy . i ..  nigdy nie są
       obejmowane, nawet poprzez wzorzec .*.

       Jeśli została ustawiona  opcja  markdirs,  wówczas,  wszelkie  katalogi
       wynikające z generacji nazw plików zostają oznaczone kończącym /.

       POSIX-owe  klasy  znaków (tzn., [:nazwa_klasy:] wewnątrz wyrażenia typu
       [..])  jak na razie nie zostały zaimplementowane.

   Przekierowanie wejścia/wyjścia
       Podczas  wykonywania  komendy,  jej  standardowe  wejście,  standardowe
       wyjście i standardowe wyjście błędów (odpowiednio deskryptory plików 0,
       1 i 2) są zwykle dziedziczone po  powłoce.   Trzema  wyjątkami  od  tej
       reguły  są  komendy  w  potokach, dla których standardowe wejście i/lub
       standardowe wyjście odpowiadają tym,  ustalonym  przez  potok,  komendy
       asychroniczne,  tworzone jeśli kontrola prac została wyłączona, których
       standardowe wejście zostaje ustawione na /dev/null, oraz  komendy,  dla
       których zostało ustawione jedno lub kilka z następujących przekierowań:

       > plik Standardowe wyjście zostaje przekierowane do plik-u.  Jeśli plik
              nie  istnieje,  wówczas zostaje utworzony; jeśli istnieje i jest
              to  regularny  plik  oraz  została  ustawiona  opcja  noclobber,
              wówczas  występuje  błąd,  w  przeciwnym razie dany plik zostaje
              ucięty do początku.  Proszę zwrócić uwagę,  iż  oznacza  to,  że
              komenda jaka_komenda < foo > foo otworzy plik foo do odczytu, a
              następnie 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
              niezależnie od ustawienia opcji noclobber.

       >> plik
              tak  jak  dla  >, tylko że jeśli dany plik już istnieje, to nowe
              dane będą dopisywane do  niego,  zamiast  kasowania  poprzedniej
              jego  zawartości.   Ponadto  plik  ten  zostaje otwarty w trybie
              dopisywania, tak więc wszelkiego rodzaju operacje zapisu na  nim
              dotyczą jego aktualnego końca.  (patrz open(2)).

       < plik standardowe  wejście  zostaje przekierowane do pliku, który 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  zawierającego  tego  rodzaju
              przekierowanie (zwane tu-dokumentem), powłoka kopiuje wiersze  z
              komendy  do  tymczasowego  pliku,  aż  do  natrafienia na wiersz
              odpowiadający znacznikowi.  Podczas wykonywania  polecenia  jego
              standardowe   wejście   jest   przekierowane  do  pewnego  pliku
              tymczasowego.  Jeśli znacznik nie zawiera  wycytowanych  znaków,
              zawartość  danego  pliku  tymczasowego zostaje przetworzona tak,
              jakby zawierała się w podwójnych cudzysłowach za  każdym  razem,
              gdy  dana  komenda  jest  wykonywana.   Tak  więc zostaną na nim
              wykonane podstawienia parametrów, komend i arytmetyczne  wraz  z
              interpretacją odwrotnego ukośnika (\) i znaków wyjść dla $, `, \
              i \nowa_linia.  Jeśli wiele tu-dokumentów zostanie zastosowanych
              w  jednym  i  tym  samym  wierszy komendy, to są one zachowane w
              podanej kolejności.

       <<- znacznik
              tak jak dla <<, tylko że początkowe tabulatory zostają  usunięte
              z tu-dokumentu.

       <& fd  standardowe  wejście  zostaje  powielone z deskryptora pliku fd.
              fd może być pojedynczą cyfrą, wskazującą na  numer  istniejącego
              deskryptora  pliku,  literą   p,  wskazującą na plik powiązany w
              wyjściem obecnego koprocesu,  lub  znakiem  -,  wskazującym,  że
              standardowe wejście powinno zostać zamknięte.

       >& fd  tak jak dla <&, tylko że operacja dotyczy standardowego wyjścia.

       W każdym z  powyższych  przekierowań,  można  podać  jawnie  deskryptor
       pliku,  którego  ma  ono  dotyczyć,  (tzn.  standardowego  wejścia  lub
       standardowego  wyjścia)  przez  poprzedzającą  odpowiednią   pojedynczą
       cyfrę.   Podstawienia  parametrów komend, arytmetyczne, tyld, tak jak i
       (gdy  powłoka  jest  interakcyjna)  generacje  nazw  plików  -  zostaną
       wykonane  na  argumentach  przekierowań  plik,  znacznik  i fd.  Trzeba
       jednak zauważyć, że wyniki wszelkiego rodzaju generowania  nazw  plików
       zostaną  użyte  tylko  wtedy,  gdy określają nazwę jednego pliku; jeśli
       natomiast obejmują one wiele plików, wówczas zostaje  zastosowane  dane
       słowo  bez  rozwinięć  wynikających  z  generacji  nazw plików.  Proszę
       zwrócić uwagę, że w powłokach  ograniczonych,  przekierowania  tworzące
       nowe pliki nie mogą być stosowane.

       Dla prostych poleceń, przekierowania mogą występować w dowolnym miejscu
       komendy,  w  komendach  złożonych  (wyrażeniach  if,  itp.),   wszelkie
       przekierowania   muszą  znajdować  się  na  końcu.   Przekierowania  są
       przetwarzane po tworzeniu potoków i  w  kolejności,  w  jakiej  zostały
       podane, tak więc
              cat /foo/bar 2>&1 > /dev/null | cat -n
       wyświetli błąd z numerem linii wiersza poprzedzającym go.

   Wyrażenia arytmetyczne
       Całkowite wyrażenia arytmetyczne mogą być stosowane przy pomocy komendy
       let,  wewnątrz  wyrażeń  $((..)),  wewnątrz  odwołań   do   tablic   (w
       szczeglnoci,  nazwa[wyraenie]),  jako  numeryczne  argumenty komendy
       test,  i  jako  wartości   w   przyporządkowywaniach   do   całkowitych
       parametrów.

       Wyrażenia   mogą  zawierać  alfanumeryczne  identyfikatory  parametrów,
       odwołania do tablic i całkowite stałe. Mogą  zostać  również  połączone
       następującymi   operatorami   języka  C:  (wymienione  i  zgrupowane  w
       kolejności rosnącego priorytetu).

       Operatory unarne:
              + - ! ~ ++ --

       Operatory binarne:
              ,
              = *= /= %= += -= <<= >>= &= ^= |=
              ||
              &&
              |
              ^
              &
              == !=
              < <= >= >
              << >>
              + -
              * / %

       Operator trinarny:
              ?: (priorytet jest bezpośrednio wyższy od przyporządkowania)

       Operatory grupujące:
              ( )

       Stałe całkowite mogą być podane  w  dowolnej  bazie,  stosując  notację
       baza#liczba,  gdzie baza jest dziesiętną liczbą całkowitą specyfikującą
       bazę, a liczba jest liczbą zapisaną w danej bazie.

       Operatory są wyliczane w następujący sposób:

              unarny +
                     wynikiem jest argument  (podane  wyłącznie  dla  pełności
                     opisu).

              unary -
                     negacja.

              !      logiczna  negacja;  wynikiem  jest  1 jeśli argument jest
                     zerowy, a 0 jeśli nie.

              ~      arytmetyczna negacja (bit-w-bit).

              ++     inkrement; musi być  zastosowanym  do  parametru  (a  nie
                     literału   lub   innego  wyrażenia)  -  parametr  zostaje
                     powiększony o 1.  Jeśli został zastosowany jako  operator
                     przedrostkowy,   wówczas   wynikiem  jest  inkrementowana
                     wartość  parametru,  a  jeśli  został  zastosowany   jako
                     operator przyrostkowy, to wynikiem jest pierwotna wartość
                     parametru.

              --     podobnie do  ++,  tylko  że  wynikiem  jest  zmniejszenie
                     parametru o 1.

              ,      Rozdziela dwa wyrażenia arytmetyczne; lewa strona zostaje
                     wyliczona  jako  pierwsza,  a  następnie  prawa   strona.
                     Wynikiem jest wartość wyrażenia po prawej stronie.

              =      przyporządkowanie;   zmiennej  po  lewej  zostaje  nadana
                     wartość po prawej.

              *= /= %= += -= <<= >>= &= ^= |=
                     operatory przyporządkowania; <var> <op>= <expr> jest  tym
                     samym co <var> = <var> <op> ( <expr> ).

              ||     logiczna  alternatywa; wynikiem jest 1 jeśli przynajmniej
                     jeden z argumentów jest niezerowy, 0 gdy  nie.   Argument
                     po  prawej  zostaje  wyliczony  jedynie,  gdy argument po
                     lewej jest zerowy.

              &&     logiczna  koniunkcja;  wynikiem  jest  1   jeśli   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).

              ==     równość; wynikiem jest 1, jeśli obydwa argumenty są sobie
                     równe, 0 gdy nie.

              !=     nierówność;  wynikiem  jest  0, jeśli obydwa argumenty są
                     sobie równe, 1 gdy nie.

              <      mniejsze od; wynikiem jest 1, jeśli  lewy  argument  jest
                     mniejszy od prawego, 0 gdy nie.

              <= >= >
                     mniejsze  lub równe, większe lub równe, większe od. Patrz
                     <.

              << >>  przesuń w lewo (prawo); wynikiem  jest  lewy  argument  z
                     bitami  przesuniętymi na lewo (prawo) o liczbę pól podaną
                     w prawym argumencie.

              + - * /
                     suma, różnica, iloczyn i iloraz.

              %      reszta; wynikiem jest reszta z dzielenia lewego argumentu
                     przez  prawy.  Znak wyniku jest nieustalony, jeśli któryś
                     z argumentów jest ujemny.

              <arg1> ? <arg2> : <arg3>
                     jeśli <arg1> jest niezerowy, to wynikiem jest  <arg2>,  w
                     przeciwnym razie <arg3>.

   Koprocesy
       Koproces  to  potok  stworzony poprzez operator |&, który jest procesem
       asynchronicznym, do którego powłoka może zarówno pisać (używając  print
       -p),  jak  i  czytać (używając read -p).  Wejściem i wyjściem koprocesu
       można również manipulować przy pomocy przekierowań  >&p  i  odpowiednio
       <&p.   Po  uruchomieniu  koprocesu,  następne  nie mogą być uruchomione
       dopóki dany koproces nie zakończy pracy lub  dopóki  wejście  koprocesu
       nie  zostanie  przekierowane  przez exec n>&p.  Jeśli wejście koprocesu
       zostanie  przekierowane  w  ten  sposób,  to  następny  w  kolejce   do
       uruchomienia   koproces   będzie   współdzielił   wyjście  z  pierwszym
       koprocesem, chyba że wyjście pierwszego koprocesu zostało przekierowane
       przy pomocy exec n<&p.

       Pewne uwagi dotyczące koprocesów:
         o    jedyną   możliwością   zamknięcia  wejścia  koprocesu  (tak  aby
              koproces wczytał zakończenie pliku) jest przekierowanie  wejścia
              na  numerowany  deskryptor  pliku,  a  następnie zamknięcie tego
              deskryptora (w szczególności, exec 3>&p;exec 3>&-).
         o    aby koprocesy mogły współdzielić  jedno  wyjście,  powłoka  musi
              zachować   otwartą  część  wpisową  danego  potoku  wyjściowego.
              Oznacza to, że zakończenie pliku nie zostanie wykryte do  czasu,
              aż wszystkie koprocesy współdzielące wyjście  zostaną zakończone
              (gdy zostaną one zakończone, wówczas  powłoka zamyka swoją kopię
              potoku).    Można   temu   zapobiec  przekierowując  wyjście  na
              numerowany  deskryptor  pliku  (ponieważ  powoduje  to   również
              zamknięcie  przez  powłokę swojej kopii).  Proszę zwrócić uwagę,
              iż to zachowanie  jest nieco  odmienne  od  oryginalnej  powłoki
              Korna,   która   zamyka  część  zapisową  swojej  kopii  wyjścia
              koprocesu,  gdy  ostatnio  uruchomiony  koproces  (zamiast   gdy
              wszystkie współdzielące koprocesy) zostanie zakończony.
         o    print  -p  ignoruje  sygnał  SIGPIPE  podczas zapisu, jeśli dany
              sygnał nie został przechwycony lub zignorowany; nie zachodzi  to
              jednak,   gdy   wejście  koprocesu  zostało  powielone  na  inny
              deskryptor pliku i stosowane jest print -un.

   Funkcje
       Funkcje  definiuje  się  albo  przy  pomocy  syntaktyki  powłoki  Korna
       function  name,  albo  syntaktyki  powłoki  Bourne'a/POSIX-owej: name()
       (patrz  poniżej,  co  do  różnic  zachodzących  pomiędzy  tymi   dwiema
       formami).   Funkcje,  tak  jak  i  .-skrypty,  są wykonywane w bieżącym
       otoczeniu,  aczkolwiek,  w  przeciwieństwie  do  .-skryptów,  argumenty
       powłoki  (tzn.  argumenty  pozycyjne,  $1,  itd.) nigdy nie są widoczne
       wewnątrz  nich.   Podczas  ustalania  położenia  komendy,  funkcje   są
       przeszukiwane po przeszukaniu specjalnych komend wbudowanych, zaś przed
       regularnymi  oraz  nieregularnymi   komendami   wbudowanymi   i   przed
       przeszukaniem PATH.

       Istniejąca funkcja może zostać usunięta poprzez unset -f nazwa-funkcji.
       Listę funkcji można otrzymać poprzez typeset +f,  a  definicje  funkcji
       można  otrzymać  poprzez  typeset  -f.   autoload  (co jest aliasem dla
       typeset -fu) może zostać użyte do tworzenia niezdefiniowanych  funkcji.
       Jeśli   ma   być  wykonana  niezdefiniowana  funkcja,  wówczas  powłoka
       przeszukuje ścieżkę podaną w parametrze FPATH szukając pliku  o  nazwie
       identycznej   z   nazwą   danej   funkcji.  Jeśli  plik  taki  zostanie
       odnaleziony, to będzie wczytany i wykonany.  Jeśli  po  wykonaniu  tego
       pliku  dana funkcja będzie zdefiniowana, wówczas zostanie ona wykonana,
       w przeciwnym razie zostanie wykonane zwykłe odnajdywanie komend  (tzn.,
       powłoka  przeszukuje  tablicę  zwykłych  komend  wbudowanych  i  PATH).
       Proszę zwrócić uwagę, że jeśli  komenda  nie  zostanie  odnaleziona  na
       podstawie  PATH,  wówczas  zostaje  podjęta  próba odnalezienia funkcji
       przez FPATH (jest to  nieudokumentowanym  zachowaniem  się  oryginalnej
       powłoki Korna).

       Funkcje  mogą mieć dwa atrybuty - śledzenia i eksportowania, które mogą
       być ustawiane przez typeset -ft i  odpowiednio  typeset  -fx.   Podczas
       wykonywania funkcji śledzonej, opcja xtrace powłoki zostaje włączona na
       czas  danej  funkcji,  w  przeciwnym  razie  opcja   xtrace   pozostaje
       wyłączona.    Atrybut   eksportowania  nie  jest  obecnie  używany.   W
       oryginalnej powłoce  Korna,  wyeksportowane  funkcje  są  widoczne  dla
       skryptów powłoki, gdy są one wykonywane.

       Ponieważ   funkcje   są   wykonywane   w  obecnym  kontekście  powłoki,
       przyporządkowania  parametrów  wykonane  wewnątrz   funkcji   pozostają
       widoczne  po  zakończeniu  danej  funkcji.   Jeśli jest to niepożądane,
       wówczas komenda  typeset  może  być  zastosowana  wewnątrz  funkcji  do
       tworzenia  lokalnych  parametrów.   Proszę  zwrócić  uwagę,  iż w żaden
       sposób nie można ograniczyć widoczności  parametrów  specjalnych  (tzn.
       $$, $!).

       Kodem  wyjścia  funkcji  jest  kod  wyjścia  ostatniej wykonanej w niej
       komendy.  Funkcję  można  przerwać  bezpośrednio  przy  pomocy  komendy
       return; można to również zastosować do jawnego określenia kodu wyjścia.

       Funkcje zdefiniowane przy pomocy  zarezerwowanego  słowa  function,  są
       traktowane odmiennie w następujących punktach od funkcji zdefiniowanych
       poprzez notację ():
         o    parametr $0 zostaje ustawiony na nazwę funkcji (funkcje w  stylu
              Bourne'a nie dotykają $0).
         o    przyporządkowania  wartości  parametrom  poprzedzające wywołanie
              funkcji nie zostają  zachowane  w  bieżącym  kontekście  powłoki
              (wykonywanie    funkcji    w   stylu   Bourne'a   zachowuje   te
              przyporządkowania).
         o    OPTIND zostanie zachowany i skasowany na początku oraz następnie
              odtworzony  na  zakończenie  funkcji,  tak więc getopts może być
              poprawnie stosowane zarówno wewnątrz funkcji, jak  i  poza  nimi
              (funkcje   w  stylu  Bourne'a  nie  dotykają  OPTIND,  tak  więc
              stosowanie  getopts   wewnątrz   funkcji   jest   niezgodne   ze
              stosowaniem getopts poza funkcjami).
              W przyszłości zostaną dodane również następujące różnice:
         o    Podczas  wykonywania funkcji będzie stosowany oddzielny kontekst
              śledzenia/sygnałów.   Tak  więc  śledzenia  ustawione   wewnątrz
              funkcji  nie  będą  miały wpływu na śledzenia i sygnały powłoki,
              nieignorowane przez nią (które mogą być przechwytywane), i  będą
              miały domyślne ich znaczenie wewnątrz funkcji.
         o    Śledzenie  EXIT-a,  jeśli  zostanie  ustawione wewnątrz funkcji,
              zostanie wykonane po zakończeniu funkcji.

   Tryb POSIX-owy
       Dana powłoka ma być w zasadzie zgodna ze standardem  POSIX,  jednak,  w
       niektórych przypadkach, zachowanie zgodne ze standardem POSIX jest albo
       sprzeczne z  zachowaniem  oryginalnej  powłoki  Korna,  albo  z  wygodą
       użytkownika.   To,  jak  powłoka zachowuje się w takich wypadkach, jest
       ustalane stanem opcji posix (set -o posix) -- jeśli jest ona  włączona,
       to zachowuje się zgodnie z POSIX-em, a w przeciwnym razie - nie.  Opcja
       posix  zostaje  automatycznie  ustawiona,  jeśli  powłoka  startuje   w
       otoczeniu  zawierającym  ustawiony  parametr POSIXLY_CORRECT.  (Powłokę
       można również skompilować tak, aby zachowanie zgodne  z  POSIX-em  było
       domyślnie ustawione, ale jest to zwykle niepożądane).

       A oto lista wpływów ustawienia opcji posix:
         o    \"  wewnątrz  cytowanych podwójnymi cudzysłowami `..` podstawień
              komend: w trybie  POSIX-owym,  \"  jest  interpretowany  podczas
              interpretacji komendy; w trybie nie-POSIX-owym, odwrotny ukośnik
              zostaje usunięty przed interpretacją podstawienia  komendy.   Na
              przykładecho  "`echo  \"hi\"`"  produkuje `"hi"' w trybie POSIX-
              owym,  `hi'  a  w  trybie  nie-POSIX-owym.   W  celu  uniknięcia
              problemów, proszę stosować postać $(...)  podstawienia komend.
         o    wyjście   kill   -l:  w  trybie  POSIX-owym  nazwy  sygnałów  są
              wymieniane wiersz po wierszu;  w  nie-POSIX-owym  trybie  numery
              sygnałów,  ich  nazwy  i opis zostają wymienione w kolumnach.  W
              przyszłości zostanie dodana  nowa  opcja  (zapewne  -v)  w  celu
              rozróżnienia tych dwóch zachowań.
         o    kod wyjścia fg: w trybie POSIX-owym, kod wyjścia wynosi 0, jeśli
              nie wystąpiły żadne błędy; w trybie nie-POSIX-owym, kod  wyjścia
              odpowiada  kodowi  ostatniego  zadania  wykonywanego w pierwszym
              planie.
         o    kod wyjścia poleceniaeval: jeżeli argumentem eval  będzie  puste
              polecenie  (np.: eval "`false`"), to jego kodem wyjścia w trybie
              POSIX-owym będzie 0.  W  trybie  nie-POSIX-owym,  kodem  wyjścia
              będzie   kod  wyjścia  ostatniego  podstawienia  komendy,  które
              zostało dokonane podczas przetwarzania argumentów polecenia eval
              (lub 0, jeśli nie było 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  nawiasów  (zwane również przemianą): w trybie POSIX-
              owym rozwijanie nawiasów jest wyłączone; w trybie nie-POSIX-owym
              rozwijanie  nawiasów  jest włączone.  Proszę zauważyć, że set -o
              posix (lub ustawienie parametru  POSIXLY_CORRECT)  automatycznie
              wyłącza  opcję  braceexpand, może ona być jednak jawnie włączona
              później.
         o    set -: w trybie POSIX-owym, nie wyłącza to  ani  opcji  verbose,
              ani xtrace; w trybie nie-POSIX-owym, wyłącza.
         o    kod  wyjścia  set:  w  trybie  POSIX-owym, kod wyjścia wynosi 0,
              jeśli nie wystąpiły żadne błędy; w  trybie  nie-POSIX-owym,  kod
              wyjścia    odpowiada    kodowi   wszelkich   podstawień   komend
              wykonywanych podczas generacji komendy set.   Przykładowo,  `set
              --  `false`;  echo  $?'  wypisuje  0  w trybie POSIX-owym, a 1 w
              trybie  nie-POSIX-owym.   Taka  konstrukcja  stosowana  jest   w
              większości  skryptów  powłoki  stosujących stary wariant komendy
              getopt(1).
         o    rozwijanie argumentów komend alias, export, readonly i  typeset:
              w trybie POSIX-owym, następuje normalne rozwijanie argumentów; w
              trybie  nie-POSIX-owym,  rozdzielanie  pól,  dopasowywanie  nazw
              plików,  rozwijanie  nawiasów  i  (zwykłe)  rozwijanie  tyld  są
              wyłączone, ale rozwijanie tyld w  przyporządkowaniach  pozostaje
              włączone.
         o    specyfikacja  sygnałów:  w  trybie  POSIX-owym, sygnały mogą być
              podawane jedynie cyframi, jeśli  numery  sygnałów  są  zgodne  z
              wartościami  z  POSIX-a  (tzn.  HUP=1,  INT=2,  QUIT=3,  ABRT=6,
              KILL=9, ALRM=14 i TERM=15);  w  trybie  nie-POSIX-owym,  sygnały
              zawsze mogą być podane cyframi.
         o    rozwijanie  aliasów:  w  trybie  POSIX-owym,  rozwijanie aliasów
              zostaje jedynie wykonywane, podczas wczytywania słów  komend;  w
              trybie   nie-POSIX-owym,  rozwijanie  aliasów  zostaje  wykonane
              również na każdym słowie po jakimś  aliasie,  które  kończy  się
              białą przerwą.  Na przykład następująca pętla for
              alias a='for ' i='j'
              a i in 1 2; do echo i=$i j=$j; done
       używa  parametru i w trybie POSIX-owym, natomiast j w trybie nie-POSIX-
       owym.
         o    test: w trybie POSIX-owym,  wyrażenie  "-t"  (poprzedzone  pewną
              liczbą  argumentów "!") zawsze jest prawdziwe, gdyż jest ciągiem
              o długości niezerowej; w  nie-POSIX-owym  trybie,  sprawdza  czy
              deskryptor  pliku  1 jest jakimś tty (tzn., argument fd do testu
              -t może zostać pominięty i jest domyślnie równy 1).

   Wykonywanie komend
       Po wyliczeniu argumentów  wiersza  komendy,  wykonaniu  przekierowań  i
       przyporządkowań  parametrów,  zostaje  ustalony  typ komendy: specjalna
       wbudowana, funkcja, regularna wbudowana lub nazwa pliku,  który  należy
       wykonać,  znajdowanego  przy  pomocy  parametru PATH.  Testy te zostają
       wykonane w wyżej podanym porządku.  Specjalne wbudowane komendy  różnią
       się  tym  od  innych  komend,  że  do ich odnalezienia nie jest używany
       parametr PATH, błąd podczas ich wykonywania może spowodować zakończenie
       powłoki   nieinterakcyjnej   i  przyporządkowania  wartości  parametrów
       poprzedzające komendę zostają zachowane po jej  wykonaniu.   Aby  tylko
       wprowadzić  zamieszanie,  jeśli  opcja  posix  została  włączona (patrz
       komenda set poniżej),  to  pewne  specjale  komendy  stają  się  bardzo
       specjalne,  gdyż  nie jest wykonywane rozdzielanie pól, rozwijanie nazw
       plików, rozwijanie nawiasów, ani rozwijanie tyld na argumentach,  które
       wyglądają  jak  przyporządkowania.  Zwykłe wbudowane komendy wyróżniają
       się jedynie tym, że do ich odnalezienia  nie  jest  stosowany  parametr
       PATH.

       Oryginalny  ksh  i  POSIX  różnią  się  nieco  w  tym, jakie komendy są
       traktowane jako specjalne, a jakie jako zwykłe:

       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 przyszłości dodatkowe specjalne komendy oraz  regularne  komendy  ksh
       mogą  być  traktowane  odmiennie  od  specjalnych  i regularnych komand
       POSIX.

       Po  ustaleniu  typu  komendy,   wszelkie   przyporządkowania   wartości
       parametrów zostają wykonane i wyeksportowane na czas trwania komendy.

       Poniżej opisujemy specjalne i regularne polecenia wbudowane:

       . plik [arg1 ...]
              Wykonaj  komendy  z  pliku  w  bieżącym otoczeniu.  Plik zostaje
              odszukiwany przy użyciu katalogów z PATH.  Jeśli zostały  podane
              argumenty,  to  parametry  pozycyjne  mogą  być  używane  w celu
              uzyskania dostępu do nich podczas wykonywania pliku.  Jeżeli nie
              zostały   podane   żadne   argumenty,   to  argumenty  pozycyjne
              odpowiadają tym z bieżącego otoczenia,  w  którym  dana  komenda
              została użyta.

       : [ ... ]
              Komenda zerowa. Kodem wyjścia jest zero.

       alias [ -d | +-t [-r] ] [+-px] [+-] [name1[=value1] ...]
              Bez  argumentów,  alias  wyświetla wszystkie obecne aliasy.  Dla
              każdej nazwy bez podanej wartości zostaje wyświetlony istniejący
              odpowiedni  alias.   Każda  nazwa  z  podaną wartością definiuje
              alias (patrz: "Aliasy" powyżej).

              Do wyświetlania aliasów używany jest  jeden  z  dwóch  formatów:
              zwykle  aliasy  są  wyświetlane  jako  nazwa=warto,  przy czym
              warto jest cytowana; jeśli opcje miały przedrostek + lub  samo
              +  zostało  podane  we  wierszu  komendy,  tylko  nazwa  zostaje
              wyświetlona.  Ponadto, jeśli została zastosowana  opcja  -p,  to
              dodatkowo każdy wiersz zaczyna się od ciągu "alias ".

              Opcja  -x ustawia (a +x kasuje) atrybut eksportu dla aliasu, lub
              jeśli nie podano żadnych  nazw,  wyświetla  aliasy  wraz  z  ich
              atrybutem  eksportu  (eksportowanie  aliasu  nie  ma  ma żadnego
              efektu).

              Opcja   -t   wskazuje,   że    śledzone    aliasy    mają    być
              wyświetlone/ustawione (wartości podane w wierszu komendy zostają
              zignorowane dla śledzonych  aliasów).   Opcja  -r  wskazuje,  że
              wszystkie śledzone aliasy mają zostać usunięte.

              Opcja -d nakazuje wyświetlenie lub ustawienie aliasów katalogów,
              które są stosowane w  rozwinięciach  tyld  (patrz:  "Rozwinięcia
              tyld" powyżej).

       bg [job ...]
              Podejmij  ponownie  wymienione  zatrzymane  zadanie(-a)  w  tle.
              Jeśli nie podano żadnego zadania, to przyjmuje się domyślnie %+.
              Ta  komenda  jest  dostępna  jedynie  w  systemach obsługujących
              kontrolę zadań.   Dalsze  informacje  można  znaleźć  poniżej  w
              rozdziale "Kontrola zadań".

       bind [-m] [klawisz[=komenda-edycji] ...]
              Ustawienie lub wyliczenie obecnych przyporządkowań klawiszy/makr
              w emacsowym trybie edycji komend.   Patrz  "Interakcyjna  edycja
              wiersza poleceń w trybie emacs" w celu pełnego opisu.

       break [poziom]
              break przerywa poziom zagnieżdżenia w pętlach for, select, until
              lub while.  Domyślnie poziom wynosi 1.

       builtin komenda [arg1 ...]
              Wykonuje wbudowaną komendę komenda.

       cd [-LP] [katalog]
              Ustawia aktualny  katalog  roboczy  na  katalog.   Jeśli  został
              ustawiony  parametr  CDPATH,  to  wypisuje  listę  katalogów,  w
              których  będzie  szukać  katalogu.   Pusta  zawartość  w  CDPATH
              oznacza  katalog bieżący.  Jeśli zostanie użyty niepusty katalog
              z CDPATH, to na standardowym  wyjściu  będzie  wyświetlona  jego
              pełna  ścieżka.   Jeśli  nie  podano katalogu, to zostanie użyty
              katalog domowy $HOME.  Jeśli  katalogiem  jest  -,  to  zostanie
              zastosowany  poprzedni  katalog roboczy (patrz parametr OLDPWD).
              Jeśli użyto opcji -L (ścieżka logiczna) lub  jeśli  nie  została
              ustawiona  opcja  physical  (patrz komenda set poniżej), wówczas
              odniesienia  do  ..  w  katalogu  są  względne   wobec   ścieżki
              zastosowanej  do dojścia do danego katalogu.  Jeśli podano opcję
              -P (fizyczna ścieżka) lub gdy została ustawiona opcja  physical,
              to  ..  jest  względne  wobec  drzewa  katalogów systemu plików.
              Parametry PWD i OLDPWD zostają uaktualnione tak, aby odpowiednio
              zawierały bieżący i poprzedni katalog roboczy.

       cd [-LP] stary nowy
              Ciąg  nowy  zostaje  podstawiony  w  zamian  za stary w bieżącym
              katalogu i powłoka próbuje przejść do nowego katalogu.

       command [-pvV] komenda [arg1 ...]
              Jeśli nie została podana opcja  -v  ani  opcja  -V,  to  komenda
              zostaje  wykonana  dokładnie  tak,  jakby  nie podano command, z
              dwoma wyjątkami: po pierwsze, komenda nie  może  być  funkcją  w
              powłoce, oraz po drugie, specjalne wbudowane komendy tracą swoją
              specjalność (tzn.  przekierowania i błędy w użyciu nie powodują,
              że  powłoka  zostaje  zakończona, a przyporządkowania parametrów
              nie  zostają  wykonane).   Jeśli  podano   opcję   -p,   zostaje
              zastosowana pewna domyślna ścieżka zamiast obecnej wartości PATH
              (wartość domyślna ścieżki  jest  zależna  od  systemu,  w  jakim
              pracujemy:  w  systemach  POSIX-owych  jest  to wartość zwracana
              przez
                                      getconf CS_PATH
              ).

              Jeśli podano opcję -v, to zamiast wykonania  polecenia  komenda,
              zostaje  podana  informacja,  co  by zostało wykonane (i to samo
              dotyczy  również  arg1  ...):   dla   specjalnych   i   zwykłych
              wbudowanych  komend i funkcji, zostają po prostu wyświetlone ich
              nazwy, dla aliasów, zostaje wyświetlona komenda definiująca dany
              alias,   oraz  dla  komend  odnajdowanych  przez  przeszukiwanie
              zawartości parametru PATH,  zostaje  wyświetlona  pełna  ścieżka
              danej  komendy.   Jeśli  komenda nie zostanie odnaleziona, (tzn.
              przeszukiwanie ścieżki  nie  powiedzie  się),  nic  nie  zostaje
              wyświetlone  i  command  zostaje  zakończone  z niezerowym kodem
              wyjścia.  Opcja -V jest podobna do opcji -v, tylko  że  bardziej
              gadatliwa.

       continue [poziom]
              continue  skacze  na początek poziomu z najgłębiej zagnieżdżonej
              pętli for, select, until lub while.  level domyślnie 1.

       echo [-neE] [arg ...]
              Wyświetla na standardowym wyjściu swoje  argumenty  (rozdzielone
              spacjami), zakończone przełamaniem wiersza.  Przełamanie wiersza
              nie następuje, jeśli którykolwiek z parametrów zawiera sekwencję
              odwrotnego  ukośnika  \c.   Patrz  komenda  print poniżej, co do
              listy innych rozpoznawanych sekwencji odwrotnych ukośników.

              Następujące opcje zostały dodane  dla  zachowania  zgodności  ze
              skryptami   z  systemów  BSD:  -n  wyłącza  końcowe  przełamanie
              wiersza, -e włącza interpretację odwrotnych ukośników  (operacja
              zerowa,  albowiem  ma  to domyślnie miejsce) oraz -E wyłączające
              interpretację odwrotnych ukośników.

       eval komenda ...
              Argumenty zostają  powiązane  (z  przerwami  pomiędzy  nimi)  do
              jednego  ciągu,  który następnie powłoka rozpoznaje i wykonuje w
              obecnym otoczeniu.

       exec [komenda [arg ...]]
              Komenda zostaje  wykonana  bez  rozwidlania  (fork),  zastępując
              proces powłoki.

              Jeśli  nie  podano  żadnych  argumentów  wszelkie przekierowania
              wejścia/wyjścia są dozwolone i powłoka nie  zostaje  zastąpiona.
              Wszelkie   deskryptory   plików   większe   niż  2  otwarte  lub
              zdup(2)-owane  w  ten  sposób  nie  są   dostępne   dla   innych
              wykonywanych  komend  (tzn.,  komend nie wbudowanych w powłokę).
              Zauważ, że powłoka Bourne'a różni się w tym:  przekazuje  bowiem
              deskryptory plików.

       exit [kod]
              Powłoka  zostaje  zakończona z podanym kodem wyjścia.  Jeśli kod
              nie został podany, wówczas kod wyjścia przyjmuje bieżącą wartość
              parametru ?.

       export [-p] [parametr[=warto]] ...
              Ustawia   atrybut   eksportu   danego  parametru.   Eksportowane
              parametry  zostają  przekazywane  w  otoczeniu  do  wykonywanych
              komend.    Jeśli   podano   wartości,  to  zostają  one  również
              przyporządkowane danym parametrom.

              Jeśli nie podano żadnych parametrów,  wówczas  nazwy  wszystkich
              parametrów  z  atrybutem  eksportu zostają wyświetlone wiersz po
              wierszu, chyba że użyto  opcji  -p,  wtedy  zostają  wyświetlone
              komendy export definiujące wszystkie eksportowane parametry wraz
              z ich wartościami.

       false  Komenda kończąca się z niezerowym kodem powrotu.

       fc [-e edytor | -l [-n]] [-r] [pierwszy [ostatni]]
              pierwszy i ostatni wybierają komendy z historii.  Komendy możemy
              wybierać  przy  pomocy  ich  numeru  w historii lub podając ciąg
              znaków określający ostatnio użytą komendę rozpoczynającą się  od
              tegoż  ciągu.   Opcja  -l wyświetla daną komendę na stdout, a -n
              wyłącza domyślne numery  komend.   Opcja  -r  odwraca  kolejność
              komend  w  liście  historii.   Bez -l, wybrane komendy podlegają
              edycji przez edytor podany poprzez  opcję  -e,  albo  jeśli  nie
              podano  -e,  przez  edytor podany w parametrze FCEDIT (jeśli nie
              został ustawiony ten parametr, wówczas stosuje się  /bin/ed),  i
              następnie wykonana przez powłokę.

       fc [-e - | -s] [-g] [stare=nowe] [prefiks]
              Wykonuje ponownie wybraną komendę (domyślnie poprzednią komendę)
              po wykonaniu opcjonalnej zamiany stare na  nowe.   Jeśli  podano
              -g,  wówczas wszelkie wystąpienia stare zostają zastąpione przez
              nowe.  Z  tej  komendy   korzysta   się   zwykle   przy   pomocy
              zdefiniowanego domyślnie aliasu r='fc -e -'.

       fg [zadanie ...]
              Przywraca  na  pierwszy  plan  zadanie(-nia).   Jeśli nie podano
              jawnie żadnego zadania, wówczas odnosi się to domyślnie  do  %+.
              Ta  komenda  jest  jedynie  dostępna na systemach wspomagających
              kontrolę zadań.  Patrz "Kontrola zadań" dla dalszych informacji.

       getopts cigopt nazwa [arg ...]
              getopts  jest stosowany przez procedury powłoki do rozpoznawania
              podanych  argumentów  (lub  parametrów  pozycyjnych,  jeśli  nie
              podano  żadnych  argumentów)  i do sprawdzenia zasadności opcji.
              cigopt zawiera litery  opcji,  które  getopts  ma  rozpoznawać.
              Jeśli  po  literze występuje przecinek, wówczas oczekuje się, że
              opcja  ma  argument.   Opcje  niemające  argumentów   mogą   być
              grupowane  w  jeden  argument.  Jeśli opcja oczekuje argumentu i
              znak opcji nie jest ostatnim znakiem  argumentu,  w  którym  się
              znajduje,  wówczas  reszta  argumentu  zostaje potraktowana jako
              argument danej opcji. W przeciwnym razie następny argument  jest
              argumentem opcji.

              Za  każdym  razem,  gdy  zostaje wywołane getopts, umieszcza się
              następną opcję w parametrze powłoki nazwa  i  indeks  następnego
              argumentu  pod obróbkę w parametrze powłoki OPTIND.  Jeśli opcja
              została podana z +, to  opcja  zostaje  umieszczana  w  nazwa  z
              przedrostkiem  +.   Jeśli  opcja  wymaga  argumentu,  to getopts
              umieszcza go w parametrze powłoki OPTARG.  Jeśli natrafi się  na
              niedopuszczalną  opcję  lub  brakuje  argumentu opcji, wówczas w
              nazwa  zostaje  umieszczony  znak   zapytania   albo   dwukropek
              (wskazując na nielegalną opcję, albo odpowiednio brak argumentu)
              i OPTARG zostaje ustawiony na znak,  który  był  przyczyną  tego
              problemu.   Ponadto  zostaje  wówczas  wyświetlony  komunikat  o
              błędzie  na  standardowym  wyjściu  błędów,  jeśli  cigopt  nie
              zaczyna się od dwukropka.

              Gdy napotkamy na koniec opcji, getopts przerywa pracę niezerowym
              kodem wyjścia.  Opcje kończą się na pierwszym (nie  podlegającym
              opcji)  argumencie,  który  nie  rozpoczyna się od -, albo jeśli
              natrafimy na argument --.

              Rozpoznawanie opcji może zostać ponowione ustawiając OPTIND na 1
              (co  następuje  automatycznie  za  każdym razem, gdy powłoka lub
              funkcja w powłoce zostaje wywołana).

              Ostrzeżenie: Zmiana wartości parametru powłoki OPTIND na wartość
              większą  niż 1, lub rozpoznawanie odmiennych zestawów parametrów
              bez  ponowienia  OPTIND  może  doprowadzić  do   nieoczekiwanych
              wyników.

       hash [-r] [nazwa ...]
              Jeśli  brak  argumentów, wówczas wszystkie ścieżki wykonywalnych
              komend z kluczem są wymieniane.  Opcja  -r  nakazuje  wyrzucenia
              wszelkim komend z kluczem z tablicy kluczy.  Każda nazwa zostaje
              odszukiwana tak, jak by  to  była  nazwa  komendy  i  dodana  do
              tablicy kluczy jeśli jest to wykonywalna komenda.

       jobs [-lpn] [zadanie ...]
              Wyświetl  informacje  o danych zadaniach; gdy nie podano żadnych
              zadań wszystkie zadania zostają wyświetlone.  Jeśli podano opcję
              -n,  wówczas informacje zostają wyświetlone jedynie o zadaniach,
              których stan zmienił  się  od  czasu  ostatniego  powiadomienia.
              Zastosowanie    opcji    -l    powoduje    dodatkowo   wykazanie
              identyfikatora każdego procesu w zadaniach.  Opcja -p  powoduje,
              że  zostaje  wyświetlona jedynie jedynie grupa procesowa każdego
              zadania.   patrz  "Kontrola  zadań"  dla  informacji  o   formie
              parametru   zdanie  i  formacie,  w  którym  zostają  wykazywane
              zadania.

       kill [-s nazsyg | -numsyg | -nazsyg ] { job | pid | -pgrp } ...
              Wyślij dany sygnał do danych zadań, procesów  z  danym  id,  lub
              grup procesów.  Jeśli nie podano jawnie żadnego sygnału, wówczas
              domyślnie zostaje wysłany sygnał TERM.   Jeśli  podano  zadanie,
              wówczas sygnał zostaje wysłany do grupy procesów danego zadania.
              Patrz  poniżej  "Kontrola  zadań"  dla  informacji  o   formacie
              zadania.

       kill -l [kod_wyjcia ...]
              Wypisz  nazwę sygnału, który zabił procesy, które zakończyły się
              danym kodem_wyjcia.  Jeśli  brak  argumentów,  wówczas  zostaje
              wyświetlona  lista  wszelkich  sygnałów  i  ich  numerów, wraz z
              krótkim ich opisem.

       let [wyraenie ...]
              Każde   wyrażenie   zostaje    wyliczone,    patrz    "Wyrażenia
              arytmetyczne"   powyżej.    Jeśli   wszelkie  wyrażenia  zostały
              poprawnie wyliczone, kodem wyjścia jest 0 (1),  jeśli  wartością
              ostatniego wyrażenia
               nie było zero (zero).  Jeśli wystąpi błąd podczas rozpoznawania
              lub  wyliczania  wyrażenia,  kod  wyjścia  jest  większy  od  1.
              Ponieważ  może  zajść  konieczność  wycytowania wyrażeń, więc ((
              wyr. )) jest syntaktycznie słodszym wariantem let "wyr".

       print [-nprsun | -R [-en]] [argument ...]
              Print  wyświetla  swe   argumenty   na   standardowym   wyjściu,
              rozdzielone  przerwami  i zakończone przełamaniem wiersza. Opcja
              -n zapobiega domyślnemu przełamaniu  wiersza.   Domyślnie  pewne
              wyprowadzenia  z  C  zostają  odpowiednio przetłumaczone.  Wśród
              nich mamy \b, \f, \n, \r, \t, \v, i \0###  (#  oznacza  cyfrę  w
              systemie  ósemkowym,  tzn.  od  0  po  3).  \c jest równoważne z
              zastosowaniem opcji -n.  \ wyrażeniom można zapobiec przy pomocy
              opcji  -r.   Opcja  -s  powoduje wypis do pliku historii zamiast
              standardowego wyjścia, a opcja -u powoduje wypis do  deskryptora
              pliku  n (n wynosi domyślnie 1 przy pominięciu), natomiast opcja
              -p pisze do do koprocesu (patrz "Koprocesy" powyżej).

              Opcja -R jest stosowana do emulacji, w pewnym  stopniu,  komendy
              echo w wydaniu BSD, która nie przetwarza sekwencji \ bez podania
              opcji -e.  Jak powyżej opcja -n zapobiega końcowemu  przełamaniu
              wiersza.

       pwd [-LP]
              Wypisz  bieżący katalog roboczy.  Przy zastosowaniu opcji -L lub
              gdy nie została ustawiona  opcja  physical  (patrz  komenda  set
              poniżej),  zostaje  wyświetlona  ścieżka  logiczna (tzn. ścieżka
              konieczna  aby  wykonać  cd  do   bieżącego   katalogu).    Przy
              zastosowaniu   opcji  -P  (ścieżka  fizyczna)  lub  gdy  została
              ustawiona opcja physical, zostaje wyświetlona  ścieżka  ustalona
              przez  system plików (śledząc katalogi .. aż po katalog główny).

       read [-prsun] [parametr ...]
              Wczytuje wiersz wprowadzenia ze standardowego wejścia, rozdziela
              ten  wiersz  na  pola  przy  uwzględnieniu parametru IFS ( patrz
              "Podstawienia"  powyżej)  i  przyporządkowuje  pola  odpowiednio
              danym parametrom.  Jeśli mamy więcej parametrów niż pól, wówczas
              dodatkowe parametry zostają ustawione na zero, a natomiast jeśli
              jest  więcej  pól  niż  paramterów to ostatni parametr otrzymuje
              jako  wartość  wszystkie  dodatkowe  pola  (wraz  ze   wszelkimi
              rozdzielającymi    przerwami).    Jeśli   nie   podano   żadnych
              parametrów, wówczas zostaje zastosowany parametr  REPLY.   Jeśli
              wiersz wprowadzania kończy się odwrotnym ukośnikiem i nie podano
              opcji -r, to odwrotny  ukośnik  i  przełamanie  wiersza  zostają
              usunięte  i  zostaje  wczytana  dalsza  część  danych.   Gdy nie
              zostanie wczytane żadne wprowadzenie, read kończy się niezerowym
              kodem wyjścia.

              Pierwszy  parametr może mieć dołączony znak zapytania i ciąg, co
              oznacza, że dany  ciąg  zostanie  zastosowany  jako  zachęta  do
              wprowadzenia  (wyświetlana  na standardowym wyjściu błędów zanim
              zostanie wczytane jakiekolwiek wprowadzenie) jeśli wejście  jest
              terminalem (e.g., read ncoś?'ile cośków: ').

              Opcje  -un  i  -ppowodują, że wprowadzenia zostanie wczytywane z
              deskryptora pliku n albo odpowiednio bieżącego koprocesu  (patrz
              komentarze   na   ten   temat  w  "Koprocesy"  powyżej).   Jeśli
              zastosowano opcję -s, wówczas wprowadzenie zostaje  zachowane  w
              pliku historii.

       readonly [-p] [parametr[=warto]] ...
              Patrz  parametr  wyłącznego odczytu nazwanych parametrów.  Jeśli
              zostały podane wartości wówczas zostają  one  nadane  parametrom
              przed  ustawieniem danego atrybutu.  Po nadaniu cechy wyłącznego
              odczytu parametrowi, nie ma więcej możliwości wykasowania go lub
              zmiany jego wartości.

              Jeśli  nie  podano  żadnych parametrów, wówczas zostają wypisane
              nazwy wszystkich parametrów w cechą wyłącznego odczytu wiersz po
              wierszu,  chyba  że  zastosowano opcję -p, co powoduje wypisanie
              pełnych  komend  readonly  definiujących  parametry   wyłącznego
              odczytu wraz z ich wartościami.

       return [kod]
              Powrót  z funkcji lub . skryptu, z kodem wyjścia kod.  Jeśli nie
              podano wartości kod, wówczas zostaje domyślnie  zastosowany  kod
              wyjścia  ostatnio  wykonanej  komendy.   Przy  zastosowaniu poza
              funkcją lub . skryptem, komenda ta ma ten  sam  efekt  co  exit.
              Proszę  zwrócić  uwagę,  iż pdksh traktuje zarówno 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  służy  do  ustawiania (-) albo kasowania (+) opcji
              powłoki,  ustawiania  parametrów  pozycyjnych   lub   ustawiania
              parametru  ciągowego.   Opcje  mogą  być  zmienione  przy pomocy
              syntaktyki +-o opcja, gdzie opcja jest pełną nazwą pewnej  opcji
              lub stosując postać +-litera, gdzie litera oznacza jednoliterową
              nazwę danej opcji (niewszystkie  opcje  posiadają  jednoliterową
              nazwę).   Następująca  tablica wylicza zarówno litery opcji (gdy
              mamy takowe), jak i pełne ich nazwy wraz z opisem wpływów  danej
              opcji.

               -A                               Ustawia   elementy   parametru
                                                ciągowego nazwa  na  arg  ...;
                                                Jeśli   zastosowano  -A,  ciąg
                                                zostaje  uprzednio   ponowiony
                                                (tzn.,   wyczyszczony);  Jeśli
                                                zastosowano    +A,     zastają
                                                ustawione pierwsze N elementów
                                                (gdzie N jest ilością argsów),
                                                reszta pozostaje niezmieniona.
               -a         allexport             wszystkie    nowe    parametry
                                                zostają   tworzone   z   cechą
                                                eksportowania
               -b         notify                Wypisuj komunikaty o zadaniach
                                                asynchronicznie,  zamiast  tuż
                                                przed   zachętą.    Ma   tylko
                                                znaczenia     jeśli    została
                                                włączona kontrola zadań  (-m).
               -C         noclobber             Zapobiegaj       przepisywaniu
                                                istniejących    już     plików
                                                poprzez  przekierowania  > (do
                                                wymuszenia  przepisania   musi
                                                zostać zastosowane >|).
               -e         errexit               Wyjdź  (po  wykonaniu  komendy
                                                pułapki    ERR)     tuż     po
                                                wystąpieniu      błędu     lub
                                                niepomyślnym wykonaniu jakiejś
                                                komendy  (tzn.,  jeśli została
                                                ona   zakończona    niezerowym
                                                kodem  wyjścia).   Nie dotyczy
                                                to komend, których kod wyjścia
                                                zostaje  jawnie  przetestowany
                                                konstruktem powłoki takim  jak
                                                wyrażenia if, until, while, &&
                                                lub ||.
               -f         noglob                Nie  rozwijaj   wzorców   nazw
                                                plików.
               -h         trackall              Twórz   śledzone   aliasy  dla
                                                wszystkich wykonywanych komend
                                                (patrz    "Aliasy"   powyżej).
                                                Domyślnie     włączone     dla
                                                nieinterakcyjnych powłok.
               -i         interactive           Włącz tryb interakcyjny - może
                                                zostać      włączone/wyłączone
                                                jedynie    podczas   odpalania
                                                powłoki.

               -k         keyword               Przyporządkowania     wartości
                                                parametrom             zostają
                                                rozpoznawane  gdziekolwiek   w
                                                komendzie.
               -l         login                 Powłoka    ma    być   powłoką
                                                zameldowania  -  może   zostać
                                                włączone/wyłączone     jedynie
                                                podczas   odpalania    powłoki
                                                (patrz  "Uruchamianie powłoki"
                                                powyżej).
               -m         monitor               Włącz kontrolę zadań (domyślne
                                                dla powłok interakcyjnych).
               -n         noexec                Nie    wykonuj   jakichkolwiek
                                                komend    -    przydatne    do
                                                sprawdzania         syntaktyki
                                                skryptów    (ignorowane    dla
                                                interakcyjnych powłok).
               -p         privileged            Ustawiane automatycznie, jeśli
                                                gdy powłoka zostaje odpalona i
                                                rzeczywiste  uid  lub  gid nie
                                                jest identyczne z  odpowiednio
                                                efektywnym uid lub gid.  Patrz
                                                "Uruchamianie powłoki" powyżej
                                                dla opisu, co to znaczy.
               -r         restricted            Ustaw  tryb  ograniczony -- ta
                                                opcja  może   zostać   jedynie
                                                zastosowana  podczas odpalania
                                                powłoki.  Patrz  "Uruchamianie
                                                powłoki"   dla  opisu,  co  to
                                                znaczy.
               -s         stdin                 Gdy    zostanie    zastosowane
                                                podczas   odpalania   powłoki,
                                                wówczas    komendy     zostają
                                                wczytywane   ze  standardowego
                                                wejścia.             Ustawione
                                                automatycznie,  jeśli  powłoka
                                                została      odpalona      bez
                                                jakichkolwiek argumentów.

                                                Jeśli -s zostaje zastosowane w
                                                komendzie set, wówczas  podane
                                                argumenty              zostają
                                                uporządkowane  zanim   zostaną
                                                one   przydzielone  parametrom
                                                pozycyjnym (lub ciągowi nazwa,
                                                jeśli -A zostało zastosowane).
               -u         nounset               Odniesienie do  nieustawionego
                                                parametru  zostaje  traktowane
                                                jako  błąd,  chyba  że  został
                                                zastosowany       jeden      z
                                                modyfikatorów -, + lub =.
               -v         verbose               Wypisuj  wprowadzenia  powłoki
                                                na standardowym wyjściu błędów
                                                podczas ich wczytywania.
               -x         xtrace                Wypisuj       komendy        i
                                                przyporządkowania   parametrów
                                                podczas    ich     wykonywania
                                                poprzedzone wartością PS4.
               -X         markdirs              Podczas    generowania    nazw
                                                plików    oznaczaj    katalogi
                                                kończącym /.
                          bgnice                Zadania    w    tle    zostają
                                                wykonywane      z      niższym
                                                priorytetem.
                          braceexpand           Włącz    rozwijanie   nawiasów
                                                (aka, alternacja).

                          emacs                 Włącz edycję  wiersza  komendy
                                                w  stylu  BRL  emacsa (dotyczy
                                                wyłącznie               powłok
                                                interakcyjnych);         patrz
                                                "Interakcyjna  edycja  wiersza
                                                poleceń w trybie emacs".
                          gmacs                 Włącz edycję wiersza komendy w
                                                stylu gmacsa  (Gosling  emacs)
                                                (dotyczy    wyłącznie   powłok
                                                interakcyjnych);       obecnie
                                                identyczne   z  trybem  edycji
                                                emacs  z  wyjątkiem  tego,  że
                                                przemiana  (^T)  zachowuje się
                                                nieco inaczej.
                          ignoreeof             Powłoka      nie      zostanie
                                                zakończona    jeśli   zostanie
                                                wczytany   znak    zakończenia
                                                pliku.   Należy   użyć  jawnie
                                                exit.
                          nohup                 Nie  zabijaj  bieżących  zadań
                                                sygnałem   HUP   gdy   powłoka
                                                zameldowania           zostaje
                                                zakończona.  Obecnie ustawione
                                                domyślnie,   co   się   jednak
                                                zmieni  w  przyszłości  w celu
                                                poprawienia kompatybilności  z
                                                oryginalnym  Korn shell (który
                                                nie   posiada    tej    opcji,
                                                aczkolwiek wysyła sygnał HUP).
                          nolog                 Bez znaczenia - w  oryginalnej
                                                powłoce     Korn.    Zapobiega
                                                sortowaniu definicji funkcji w
                                                pliku historii.
                          physical              Powoduje,  że  komendy cd oraz
                                                pwd stosują  `fizyczne'  (tzn.
                                                pochodzące  od systemu plików)
                                                ..      katalogi       zamiast
                                                `logicznych'  katalogów (tzn.,
                                                że powłoka interpretuje .., co
                                                pozwala    użytkownikowi   nie
                                                troszczyć  się  o   dowiązania
                                                symboliczne   do   katalogów).
                                                Domyślnie wykasowane.   Proszę
                                                zwrócić  uwagę,  iż ustawianie
                                                tej  opcji   nie   wpływa   na
                                                bieżącą wartość parametru PWD;
                                                jedynie  komenda  cd   zmienia
                                                PWD.   Patrz  komendy cd i pwd
                                                powyżej      dla      dalszych
                                                szczegółów.
                          posix                 Włącz  tryb POSIX-owy.  Patrz:
                                                "Tryb POSIX" powyżej.
                          vi                    Włącz edycję  wiersza  komendy
                                                w   stylu  vi  (dotyczy  tylko
                                                powłok interakcyjnych).
                          viraw                 Bez znaczenia - w  oryginalnej
                                                powłoce   Korna,   dopóki  nie
                                                zostało ustawione viraw,  tryb
                                                wiersza komendy vi pozostawiał
                                                pracę  napędowi  tty   aż   do
                                                wprowadzenia  ESC (^[).  pdksh
                                                jest zawsze w trybie viraw.
                          vi-esccomplete        W   trybie   edycji    wiersza
                                                komendy  vi wykonuj rozwijania
                                                komend / plików  gdy  zostanie
                                                wprowadzone   escape   (^[)  w
                                                trybie komendy.

                          vi-show8              Dodaj  przedrostek  `M-'   dla
                                                znaków   z   ustawionym  ósmym
                                                bitem.   Jeśli  nie   zostanie
                                                ustawiona  ta  opcja, wówczas,
                                                znaki   z   zakresu    128-160
                                                zostają wypisane bez zmian, co
                                                może być przyczyną  problemów.
                          vi-tabcomplete        W    trybie   edycji   wiersza
                                                komendy vi wykonuj  rozwijania
                                                komend/  plików jeśli tab (^I)
                                                zostanie wprowadzone w  trybie
                                                wprowadzania.

              Tych opcji można użyć również podczas odpalania powłoki.  Obecny
              zestaw  opcji  (z  jednoliterowymi  nazwami)  znajduje   się   w
              parametrze   -.   set  -o  bez  podania  nazwy  opcji  wyświetla
              wszystkie opcja i informację o ich ustawieniu lub  nie;  set  +o
              wypisuje pełne nazwy opcji obecnie włączonych.

              Pozostałe  argumenty,  jeśli  podano  takowe, są traktowane jako
              parametry pozycyjne i zostają przyporządkowane, przy  zachowaniu
              kolejności,  parametrom  pozycyjnym  (tzn.,  1, 2, itd.).  Jeśli
              opcje  kończą  się  --  i  brak  dalszych  argumentów,   wówczas
              wszystkie  parametry  pozycyjne zostają wyczyszczone.  Jeśli nie
              podano żadnych opcji lub argumentów, wówczas zostają wyświetlone
              wartości  wszystkich  nazw.  Z nieznanych historycznych powodów,
              samotna opcja - zostaje traktowana  specjalnie:  kasuje  zarówno
              opcję -x, jak i -v.

       shift [liczba]
              Parametry pozycyjne liczba+1, liczba+2 itd. zostają przeniesione
              pod 1, 2, itd.  liczba wynosi domyślnie 1.

       test wyraenie

       [ wyraenie ]
              test wylicza wyraenia i zwraca kod wyjścia zero jeśli prawda, i
              kod  1  jeden  jeśli  fałsz, a więcej niż 1 jeśli wystąpił błąd.
              Zostaje zwykle zastosowane jako komenda warunkowa wyrażeń  if  i
              while.  Mamy do dyspozycji następujące podstawowe wyrażenia:

               cig                 cig  ma  niezerową długość.
                                    Proszę  zwrócić  uwagę,   iż
                                    mogą    wystąpić   trudności
                                    jeśli  cig  okaże  się  być
                                    operatorem  (dokadniej, -r)
                                    -   ogólnie   lepiej    jest
                                    zamiast  tego  stosować test
                                    postaci
                                                  [ X"ciag" != X
                                                  ]
                                           (podwójne wycytowania
                                           zostają   zastosowane
                                           jeśli   cig  zawiera
                                           przerwy   lub   znaki
                                           rozwijania plików).
               -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 zwykłym plikiem
               -d plik              plik jest katalogiem
               -c plik              plik jest specjalnym plikiem
                                    napędu ciągowego

               -b plik              plik jest specjalnym plikiem
                                    napędu 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
                                    lepkości
               -s plik              plik nie jest pusty
               -O plik              właściciel  pliku zgadza się
                                    z efektywnym user-id powłoki
               -G plik              grupa  pliku   zgadza  się z
                                    efektywną group-id powłoki
               -h plik              plik jest symbolicznym  [WK:
                                    twardym?] dowiązaniem
               -H plik              plik    jest   zależnym   od
                                    kontekstu katalogiem  (tylko
                                    sensowne pod HP-UX)
               -L plik              plik    jest    symbolicznym
                                    dowiązaniem
               -S plik              plik jest gniazdem
               -o opcja             Opcja powłoki jest ustawiona
                                    (patrz  komenda  set powyżej
                                    dla listy możliwych  opcji).
                                    Jako          niestandardowe
                                    rozszerzenie,  jeśli   opcja
                                    zaczyna  się  od !, to wynik
                                    testu zostaje negowany; test
                                    wypada zawsze negatywnie gdy
                                    dana opcja nie istnieje (tak
                                    więc
                                                  [ -o co -o -o
                                                  !co ]
                                           zwraca prawdę tylko i
                                           tylko    wtedy,   gdy
                                           opcja co  istnieje).
               plik -nt plik        pierwszy plik jest nowszy od
                                    następnego pliku
               plik -ot plik        pierwszy plik  jest  starszy
                                    od następnego pliku
               plik -ef plik        pierwszy plik jest tożsamy z
                                    drugim plikiem
               -t [fd]              Deskryptor    pliku     jest
                                    przyrządem  tty.   Jeśli nie
                                    została   ustawiona    opcja
                                    posix  (set  -o posix, patrz
                                    "Tryb    POSIX"    powyżej),
                                    wówczas   fd   może   zostać
                                    pominięty,    co     oznacza
                                    przyjęcie domyślnej wartości
                                    1   (zachowanie   się   jest
                                    wówczas  odmienne  z  powodu
                                    specjalnych  reguł   POSIX-a
                                    opisywanych powyżej).
               cig                 cig jest niepusty
               -z cig              cig jest pusty
               -n cig              cig jest niepusty
               cig = cig          ciągi są sobie równe
               cig == cig         ciągi są sobie równe
               cig != cig         ciągi się różnią
               liczba -eq liczba    liczby są równe
               liczba -ne liczba    liczby różnią się
               liczba -ge liczba    liczba   jest   większa  lub
                                    równa od drugiej
               liczba -gt liczba    liczba   jest   większa   od
                                    drugiej
               liczba -le liczba    liczba   jest  mniejsza  lub
                                    równa od drugiej

               liczba -lt liczba    liczba  jest   mniejsza   od
                                    drugiej

              Powyższe  podstawowe  wyrażenie, w których unarne operatory mają
              pierwszeństwo przed operatorami binarnymi, mogą być stosowane  w
              połączeniu   z   następującymi   operatorami   (wymienionymi   w
              kolejności odpowiadającej ich pierwszeństwu):

               wyraenie -o wyraenie    logiczne lub
               wyraenie -a wyraenie    logiczne i
               ! wyraenie               logiczna negacja
               ( wyraenie )             grupowanie

              W systemie operacyjny niewspomagający napędów /dev/fd/n (gdzie n
              jest  numerem  deskryptora  pliku),  komenda  test  stara się je
              emulować  dla  wszystkich  testów  operujących  na  plikach   (z
              wyjątkiem  testu  -e).   W  szczególności.,  [  -w  /dev/fd/2  ]
              sprawdza czy jest dostępny zapis na deskryptor pliku 2.

              Proszę zwrócić uwagę, że zachodzą specjalne reguły (zawdzięczane
              ),  jeśli liczba argumentów do test lub [ ... ] jest mniejsza od
              pięciu: jeśli pierwsze argumenty ! mogą zostać pominięte, tak że
              pozostaje  tylko  jeden argument, wówczas zostaje przeprowadzony
              test długości ciągu (ponownie, nawet jeśli  dany  argument  jest
              unarnym  operatorem);  jeśli  pierwsze  argumenty  ! mogą zostać
              pominięte tak, że pozostają trzy argumenty i drugi argument jest
              operatorem  binarnym,  wówczas  zostaje  wykonana  dana  binarna
              operacja (nawet jeśli pierwszy argument jest unarnym  operatorem
              operator, wraz z nieusuniętym !).

              Uwaga: Częstym błędem jest stosowanie if [ $coś = tam ], co daje
              wynik negatywny jeśli 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  Wyświetla   zgromadzony  czas  w  przestrzeni  użytkownika  oraz
              systemu,  który  potrzebowała  powłoka  i  w  niej  wystartowane
              procesy, które się zakończyły.

       trap [obrabiacz sygna ...]
              Ustawia obrabiacz, który należy wykonać w razie odebrania danego
              sygnału.  Obrabiacz może być albo zerowym  ciągiem,  wskazującym
              na  zamiar  ignorowania  sygnałów danego typu, albo minusem (-),
              wskazującym, że ma zostać  podjęta  akcja  domyślna  dla  danego
              sygnału  (patrz  signal(2  lub  3)),  albo  ciągiem zawierającym
              komendy powłoki które mają  zostać  wyliczone  i  wykonane  przy
              pierwszej okazji (tzn. po zakończeniu bieżącej komendy lub przed
              wypisaniem następnego symboli zachęty PS1) po odebraniu  jednego
              z  danych  sygnałów.   Signal jest nazwą danego sygnału (tak jak
              np., PIPE lub ALRM) lub jego  numerem  (patrz  komenda  kill  -l
              powyżej).   Istnieją  dwa specjalne sygnały: EXIT (również znany
              jako 0), który zostaje wykonany tuż przed zakończeniem  powłoki,
              i  ERR  który zostaje wykonany po wystąpieniu błędu (błędem jest
              coś, co powodowałoby zakończenie powłoki jeśli zostały ustawione
              opcje  -e lub errexit -- patrz komendy set powyżej).  Obrabiacze
              EXIT zostają wykonane w otoczeniu ostatniej wykonywanej komendy.
              Proszę  zwrócić uwagę, że dla powłok nieinterakcyjnych obrabiacz
              wykroczeń nie może zostać zmieniony  dla  sygnałów,  które  były
              ignorowane podczas startu danej powłoki.

              Bez  argumentów,  trap  wylicza,  jako seria komend trap, obecny
              status  wykroczeń,  które  zostały  ustawione  od  czasu  startu
              powłoki.

              Traktowanie sygnałów DEBUG oraz ERR i EXIT i oryginalnej powłoki
              Korna  w  funkcjach  nie  zostało  jak  do  tej   pory   jeszcze
              zrealizowane.

       true   Komenda kończąca się zerową wartością kodu wyjścia.

       typeset  [[+-Ulprtux]  [-L[n]]  [-R[n]]  [-Z[n]]  [-i[n]]  | -f [-tux]]
       [nazwa[=warto] ...]
              Wyświetlaj  lub  ustawiaj  wartości  atrybutów  parametrów.  Bez
              argumentów nazwa, zostają wyświetlone atrybuty parametrów: jeśli
              brak  argumentów  będących opcjami, zostają wyświetlone atrybuty
              wszystkich parametrów jako komendy typeset; jeśli  podano  opcję
              (lub  -  bez  litery  opcji)  wszystkie parametry i ich wartości
              posiadające  dany  atrybut  zostają  wyświetlone;  jeśli   opcje
              zaczynają   się  od  +,  to  nie  zostają  wyświetlone  wartości
              parametrów.

              Jeśli podano argumenty  If  nazwa,  zostają  ustawione  atrybuty
              danych  parametrów (-) lub odpowiednio wykasowane (+).  Wartości
              parametrów  mogą  zostać  ewentualnie  podane.   Jeśli   typeset
              zostanie  zastosowane  wewnątrz  funkcji, wszystkie nowotworzone
              parametry pozostają lokalne dla danej funkcji.

              Jeśli zastosowano -f,  wówczas  typeset  operuje  na  atrybutach
              funkcji.   Tak  jak  dla  parametrów,  jeśli brak nazws, zostają
              wymienione funkcje wraz z ich wartościami  (tzn.,  definicjami),
              chyba  że  podano  opcje  zaczynające się od +, w którym wypadku
              zostają wymienione tylko nazwy funkcji.

               -Ln               Atrybut  przyrównania  do  lewego  brzegu:  n
                                 oznacza  szerokość  pola.   Jeśli  brak n, to
                                 zostaje   zastosowana    bieżąca    szerokość
                                 parametru     (lub     szerokość    pierwszej
                                 przyporządkowywanej  wartości).    Prowadzące
                                 białe   przerwy   (tak   jak  i  zera,  jeśli
                                 ustawiono  opcję  -Z)   zostają   wykasowane.
                                 Jeśli  trzeba,  wartości zostają albo obcięte
                                 lub dodane przerwy do  osiągnięcia  wymaganej
                                 szerokości.
               -Rn               Atrybut  przyrównania  do  prawego  brzegu: n
                                 oznacza szerokość pola.   Jeśli  brak  n,  to
                                 zostaje    zastosowana    bieżąca   szerokość
                                 parametru    (lub     szerokość     pierwszej
                                 przyporządkowywanej wartości).  Białe przerwy
                                 na końcu  zostają  usunięte.   Jeśli  trzeba,
                                 wartości zostają albo pozbawione prowadzących
                                 znaków  albo  przerwy   zostają   dodane   do
                                 osiągnięcia wymaganej szerokości.
               -Zn               Atrybut   wypełniania   zerami:   jeśli   nie
                                 skombinowany z -L, to oznacza to samo co  -R,
                                 tylko, że do rozszerzania zostaje zastosowane
                                 zero zamiast przerw.
               -in               Atrybut  całkowitości:  n  podaje   bazę   do
                                 zastosowania    podczas   wypisywania   danej
                                 wartości całkowitej  (jeśli  nie  podano,  to
                                 baza zostaje zaczerpnięta z bazy zastosowanej
                                 w  pierwszym   przyporządkowaniu   wartości).
                                 Parametrom   z   tym   atrybutem   mogą   być
                                 przyporządkowywane    wartości    zawierające
                                 wyrażenia arytmetyczne.
               -U                Atrybut    dodatniej   całkowitości:   liczby
                                 całkowite zostają wyświetlone  jako  wartości
                                 bez  znaku  (stosowne  jedynie w powiązaniu z
                                 opcją -i).   Tej  opcji  brak  w  oryginalnej
                                 powłoce Korna.
               -f                Tryb funkcji: wyświetlaj lub ustawiaj funkcje
                                 i ich atrybuty, zamiast parametrów.
               -l                Atrybut małej litery: wszystkie znaki z dużej
                                 litery  zostają w wartości zamienione na małe
                                 litery.   (W   oryginalnej   powłoce   Korna,
                                 parametr  ten  oznaczał `długi całkowity' gdy
                                 był stosowany w połączeniu z opcją -i).

               -p                Wypisuj pełne komendy  typeset,  które  można
                                 następnie  zastosować  do  odtworzenia danych
                                 atrybutów (lecz nie wartości) parametrów.  To
                                 jest  wynikiem domyślnym (opcja ta istnieje w
                                 celu zachowania kompatybilności z ksh93).
               -r                Atrybut wyłącznego odczytu: parametry z danym
                                 atrybutem nie przyjmują nowych wartości i nie
                                 mogą zostać wykasowane.  Po  ustawieniu  tego
                                 atrybutu  nie można go już więcej odaktywnić.
               -t                Atrybut  zaznaczenia:   bez   znaczenia   dla
                                 powłoki;  istnieje  jedynie do zastosowania w
                                 aplikacjach.

                                 Dla funkcji -t, to atrybut śledzenia.   Jeśli
                                 zostają   wykonywane   funkcje   z  atrybutem
                                 śledzenia,  to  opcja  powłoki  xtrace   (-x)
                                 zostaje tymczasowo włączona.
               -u                Atrybut dużej litery: wszystkie znaki z małej
                                 litery w wartościach zostają przestawione  na
                                 duże  litery.   (W oryginalnej powłoce Korna,
                                 ten parametr oznaczał `całkowity  bez  znaku'
                                 jeśli został zastosowany w połączeniu z opcją
                                 -i, oznaczało to, że nie można było  stosować
                                 dużych liter dla baz większych niż 10.  patrz
                                 opcja -U).

                                 Dla funkcji, -u to atrybut  niezdefiniowania.
                                 Patrz  "Funkcje" powyżej dla implikacji tego.
               -x                Atrybut   eksportowania:    parametry    (lub
                                 funkcje)   zostają  umieszczone  w  otoczenia
                                 wszelkich wykonywanych komend.  Eksportowanie
                                 funkcji  nie  zostało  jeszcze  do  tej  pory
                                 zrealizowane.

       ulimit [-acdfHlmnpsStvw] [warto]
              Wyświetl lub ustaw ograniczenia dla procesów.  Jeśli brak opcji,
              to   ograniczenie  ilości  plików  (-f)  zostaje  przyjęte  jako
              domyśle.   wartość,  jeśli  podana,  może  być  albo  wyrażeniem
              arytmetycznym    lub    słowem    unlimited    (nieograniczone).
              Ograniczenia dotyczą powłoki  i  wszelkich  procesów  przez  nią
              tworzonych  po  nadaniu  ograniczenia.  Proszę zwrócić uwagę, iż
              niektóre systemy mogą zabraniać podnoszenia wartości  ograniczeń
              po  ich  nadaniu.   Ponadto  proszę  zwrócić  uwagę,  że rodzaje
              dostępnych  ograniczeń  zależą  od  danego  systemu  -  niektóre
              systemy posiadają jedynie możliwość ograniczania -f.

              -a     Wyświetla wszystkie ograniczenia; jeśli nie podano -H, to
                     zostają wyświetlone ograniczenia miękkie.

              -H     Ustaw  jedynie  ograniczenie  twarde  (domyślnie  zostają
                     ustawione zarówno ograniczenie twarde jak też i miękkie).

              -S     Ustaw jedynie  ograniczenie  miękkie  (domyślnie  zostają
                     ustawione zarówno ograniczenie twarde jak też i miękkie).

              -c     Ogranicz wielkości plików zrzutów core do n bloków.

              -d     Ogranicz wielkość obszaru danych do n kilobajtów.

              -f     Ogranicz wielkość plików zapisywanych przez powłokę i jej
                     programy  pochodne  do n bloków (pliki dowolnej wielkości
                     mogą być wczytywane).

              -l     Ogranicz do n kilobajtów ilość  podkluczonej  (podpiętej)
                     fizycznej pamięci.

              -m     Ogranicz   do   n  kilobajtów  ilość  używanej  fizycznej
                     pamięci.

              -n     Ogranicz do n liczbę jednocześnie otwartych  deskryptorów
                     plików.

              -p     Ogranicz  do  n liczbę jednocześnie wykonywanych procesów
                     danego użytkownika.

              -s     Ogranicz do n kilobajtów rozmiar obszaru stosu.

              -t     Ogranicz do  n  sekund  czas  zużywany  przez  pojedyncze
                     procesy.

              -v     Ogranicz   do  n  kilobajtów  ilość  używanej  wirtualnej
                     pamięci; pod  niektórymi  systemami  jest  to  maksymalny
                     stosowany   wirtualny   adres   (w   bajtach,   a  nie  w
                     kilobajtach).

              -w     Ogranicz  do  n  kilobajtów  ilość  stosowanego   obszaru
                     odkładania.

              Dla ulimit blok to zawsze 512 bajtów.

       umask [-S] [maska]
              Wyświetl  lub ustaw maskę zezwoleń w tworzeniu plików, lub umask
              (patrz  umask(2)).   Jeśli  zastosowano  opcję  -S,  maska  jest
              wyświetlana  lub  podawana symbolicznie, w przeciwnym razie jako
              liczba ósemkowa.

              Symboliczne maski są podobne do tych stosowanych przez chmod(1):
                     [ugoa]{{=+-}{rwx}*}+[,...]
              gdzie  pierwsza  grupa  znaków  jest  częścią kto, a druga grupa
              częścią op, i ostatnio grupa częścią perm.  Część  kto  określa,
              która część umaski ma zostać zmodyfikowana.  Litery oznaczają:

                      u      prawa użytkownika

                      g      prawa grupy

                      o      prawa pozostałych (nieużytkownika, niegrupy)

                      a      wszelkie   prawa   naraz  (użytkownika,  grupy  i
                             pozostałych)

              Część op wskazuję jak prawa kto mają być zmienione:

                      =      nadaj

                      +      dodaj do

                      -      usuń z

              Część perm wskazuje które prawa mają zostać nadane,  dodane  lub
              usunięte:

                      r      prawo czytania

                      w      prawo zapisu

                      x      prawo wykonywania

              Gdy  stosuje  się maski symboliczne, to opisują one, które prawa
              mogą zostać udostępnione (w przeciwieństwie do masek ósemkowych,
              w  których ustawienie bitu oznacza, że ma on zostać wykasowany).
              Przykład: `ug=rwx,o=' ustawia  maskę  tak,  że  pliki  nie  będą
              odczytywalne, zapisywalne i wykonywalne przez `innych'. Jest ono
              równoważne (w większości systemów) oktalnej masce `07'.

       unalias [-adt] [nazwa1 ...]
              Aliasy dla danej nazwy zostają usunięte.  Gdy zastosowano  opcję
              -a,  to wszelkie aliasy zostają usunięte.  Gdy zastosowano opcję
              -t lub -d, to wymienione operacje zostają  wykonane  jedynie  na
              śledzonych lub odpowiednio aliasach katalogów.

       unset [-fv] parametr ...
              Kasuj  wymienione  parametry  (-v, oznacza domyślne) lub funkcje
              (-f).  Status zakończenia jest niezerowy jeśli któryś  z  danych
              parametrów był już wykasowany, a zero z przeciwnym razie.

       wait [zadanie]
              Czekaj  na zakończenie danego zadania/zadań.  Kodem wyjścia wait
              jest kod ostatniego podanego zadania: jeśli dane zadanie zostało
              zabite  sygnałem,  kod wyjścia wynosi 128 + numer danego sygnału
              (patrz kill -l kod_wyjcia powyżej); jeśli ostatnie dane zadanie
              nie  może  zostać  odnalezione  (bo  nigdy  nie istniało lub już
              zostało zakończone), to kod zakończenia wait wynosi 127.   Patrz
              "Kontrola  zadań"  poniżej w celu informacji o formacie zadanie.
              Wait zostaje zakończone jeśli zajdzie sygnał,  na  który  został
              ustawiony  obrabiacz,  lub gdy zostanie odebrany sygnał HUP, INT
              lub QUIT.

              Jeśli nie podano zadań, wait wait czeka na zakończenie wszelkich
              obecnych  zadań  (jeśli  istnieją  takowe)  i kończy się zerowym
              kodem  wyjścia.   Jeśli  kontrola  zadań  została  włączona,  to
              zostaje  wyświetlony kod wyjścia zadań (to nie ma miejsca, jeśli
              zadania zostały jawnie podane).

       whence [-pv] [nazwa ...]
              Dla każdej nazwy  zostaje  wymieniony  odpowiednio  typ  komendy
              (reserved  word,  built-in,  alias,  function, tracked alias lub
              executable).   Jeśli  podano  opcję  -p,  to  zostaje  odszukana
              ścieżka  dla  nazw,  będących zarezerwowanymi słowami, aliasami,
              itp.  Bez opcji -v whence działa podobnie do  command  -v,  poza
              tym,  że  whence  odszukuje  zarezerwowane  słowa i nie wypisuje
              aliasów jako komendy alias; z opcją -v, whence  to  to  samo  co
              command  -V.   Zauważ,  że dla whence, opcja -p nie ma wpływu na
              przeszukiwaną ścieżkę, tak jak dla command.   Jeśli  typ  jednej
              lub  więcej spośród nazw nie mógł zostać ustalony to kod wyjścia
              jest niezerowy.

   Kontrola zadań
       Kontrola  zadań   oznacza   zdolność   powłoki   to   monitorowania   i
       kontrolowania  wykonywanych  zadań,  które  są  procesami  lub  grupami
       procesów tworzonych przez komendy  lub  potoki.   Powłoka  przynajmniej
       śledzi  status  obecnych  zadań  w  tle  (tzn.,  asynchronicznych);  tę
       informację  można  otrzymać  wykonując  komendę  jobs.   Jeśli  została
       uaktywniona  pełna kontrola zadań (stosując set -m lub set -o monitor),
       tak jak w powłokach interakcyjnych, to procesy pewnego zadania  zostają
       umieszczane  we  własnej  grupie  procesów, pierwszoplanowe zadnia mogą
       zostać zatrzymane przy pomocy klawisza wstrzymania z terminalu  (zwykle
       ^Z), zadania mogą zostać ponownie podjęte albo na pierwszym planie albo
       w tle, stosując odpowiednio komendy fg i bg, i status terminala zostaje
       zachowany  a  następnie  odtworzony,  jeśli zadanie na pierwszym planie
       zostaje zatrzymane lub odpowiednio wznowione.

       Proszę zwrócić uwagę, że tylko komendy tworzące procesy (tzn.,  komendy
       asynchroniczne,  komendy  podpowłok  i  niewbudowane komendy nie będące
       funkcjami) mogą zostać wstrzymane; takie  komendy  jak  read  nie  mogą
       tego.

       Gdy  zostaje  stworzone  zadanie,  to  przyporządkowuje  mu  się  numer
       zadania.  Dla interakcyjnych powłok, numer ten  zostaje  wyświetlony  w
       [..],  i w następstwie identyfikatory procesów w zadaniu, jeśli zostaje
       wykonywane asynchroniczne zadanie.  Do zadania  możemy  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
       poprzedzając  numer  zadania znakiem procentu (%).  Również następujące
       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,  które  byłoby  pod  %+  gdyby   nie
                                 zostało zakończone.
        %n                       Zadanie z numerem zadania n.
        %?cig                   Zadanie   zawierające  ciąg  cig  (występuje
                                 błąd, gdy odpowiada mu kilka zadań).

        %cig                    Zadanie   zaczynające   się   ciągiem    cig
                                 (występuje   błąd,  gdy  odpowiada  mu  kilka
                                 zadań).

       Jeśli  zadanie  zmienia  status  (tzn.,  gdy  zadanie  w  tle   zostaje
       zakończone lub zadanie na pierwszym planie zostaje wstrzymane), powłoka
       wyświetla następujące informacje o statusie:
              [numer] flaga status komenda
       gdzie

        numer to numer danego zadania.

        flaga jest + lub - jeśli zadaniem jest odpowiednio zadanie  z  %+  lub
              %-, lub przerwa jeśli nie jest ani jednym ani drugim.

        status
              Wskazuje obecny stan danego zadania i może to być

              Running
                     Zadanie  nie  jest  ani wstrzymane ani zakończone (proszę
                     zwrócić uwagę, iż przebieg nie koniecznie  musi  oznaczać
                     spotrzebowywanie   czasu   CPU   --   proces   może   być
                     zablokowany, czekając na pewne zajście).

              Done [(numer)]
                     zadanie zakończone. numer to kod wyjścia danego  zadania,
                     który zostaje pominięty, jeśli wynosi on zero.

              Stopped [(sygna)]
                     zadanie  zostało  wstrzymane  danym  sygnałem sygna (gdy
                     brak  sygnału,  to  zadanie  zostało   zatrzymane   przez
                     SIGTSTP).

              opis-sygnau [(core dumped)]
                     zadanie  zostało  zabite  sygnałem  (tzn.,  Memory fault,
                     Hangup, itp. -- zastosuj kill  -l  dla  otrzymania  listy
                     opisów  sygnałów).   Wiadomość (core dumped) wskazuje, że
                     proces stworzył plik zrzutu core.

        command
              to komenda, która stworzyła dany  proces.   Jeśli  dane  zadanie
              zawiera  kilka  procesów, to każdy proces zostanie wyświetlony w
              osobnym wierszy pokazującym  jego  command  i  ewentualnie  jego
              status,  jeśli jest on odmienny od statusu poprzedniego procesu.

       Jeśli próbuje się zakończyć powłokę, podczas  gdy  istnieją  zadania  w
       stanie  zatrzymania,  to  powłoka ostrzega użytkownika, że są zadania w
       stanie zatrzymania i nie kończy pracy.  Gdy tuż potem zostanie  podjęta
       ponowna  próba  zakończenia  powłoki,  to  zatrzymane zadania otrzymują
       sygnał HUP  i  powłoka  kończy  pracę.   podobnie,  jeśli  nie  została
       ustawiona opcja nohup, i są zadania w pracy, gdy zostanie podjęta próba
       zakończenia powłoki zameldowania, powłoka ostrzega  użytkownika  i  nie
       kończy   pracy.    Gdy   tuż  potem  zostanie  ponownie  podjęta  próba
       zakończenia pracy powłoki, to bieżące procesy otrzymują  sygnał  HUP  i
       powłoka kończy pracę.

   Interakcyjna edycja wiersza poleceń w trybie emacs
       Jeśli  została  ustawiona opcja emacs,jest włączona interakcyjna edycja
       wiersza wprowadzeń.  Ostrzeżenie: Ten tryb zachowuje się nieco  inaczej
       niż  tryb  emacsa  w  oryginalnej  powłoce  Korna  i  8-my  bit zostaje
       wykasowany  w  trybie  emacsa.   W  trybie  tym  różne  komendy  edycji
       (zazwyczaj podłączone pod jeden lub więcej znaków sterujących) powodują
       natychmiastowe akcje bez odczekiwania następnego  przełamania  wiersza.
       Wiele  komend  edycji  jest  związywanych z pewnymi znakami sterującymi
       podczas odpalania powłoki; te związki mogą zostać zmienione przy pomocy
       następujących komend:

       bind   Obecne związki zostają wyliczone.

       bind cig=[komenda-edycji]
              Dana  komenda  edycji  zostaje  podwiązana  pod dany ciąg, który
              powinien składać  się  ze  znaku  sterującego  (zapisanego  przy
              pomocy  strzałki  w górę ^X), poprzedzonego ewentualnie jednym z
              dwóch znaków przedsionkownych.  Wprowadzenie danego cigu będzie
              wówczas  powodowało bezpośrednie wywołanie danej komendy edycji.
              Proszę zwrócić uwagę, że  choć  tylko  dwa  znaki  przedsionkowe
              (zwykle  ESC  i ^X) są wspomagane, to mogą również zostać podane
              niektóre  ciągi  wieloznakowe.   Następujące  podłącza  klawisze
              terminala  ANSI lub xterm (które są w domyślnych podwiązaniach).
              Oczywiście niektóre sekwencje wyprowadzenia nie chcą działać tak
              gładko:

              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 których można podłączyć klawisze.

       bind -m cig=[podstawienie]
              Dany  ciąg wprowadzenia cig zostanie zamieniony bezpośrednio na
              dane podstawienie, które może zawierać komendy edycji.

       Następuje lista  dostępnych  komend  edycji.   Każdy  z  poszczególnych
       opisów  zaczyna  się nazwą komendy, literą n, jeśli komenda może zostać
       poprzedzona licznikiem, i wszelkimi klawiszami, do których dana komenda
       jest  podłączona  domyślnie  (w  zapisie stosującym notację strzałkową,
       tzn., znak ASCII ESC  jest  pisany  jako  ^[).   Licznik  poprzedzający
       komendę wprowadzamy stosując ciąg ^[n, gdzie n to ciąg składający się z
       jednej lub więcej cyfr; chyba że podano inaczej licznik,  jeśli  został
       pominięty,  wynosi  domyślnie 1.  Proszę zwrócić uwagę, że nazwy komend
       edycji stosowane są jedynie w komendzie bind.   Ponadto,  wiele  komend
       edycji  jest przydatnych na terminalach z widocznym kursorem.  Domyślne
       podwiązania  zostały  wybrane  tak,  aby  były  zgodne  z  odpowiednimi
       podwiązaniami  Emacsa.   Znaki użytkownika tty (w szczeglnoci, ERASE)
       zostały  podłączenia  do  stosownych  podstawień  i   kasują   domyślne
       podłączenia.

       abort ^G
              Przydatne     w    odpowiedzi    na    zapytanie    o    wzorzec
              przeszukiwania_historii do przerwania tego szukania.

       auto-insert n
              Powoduje  po  prostu  wyświetlenie   znaku   jako   bezpośrednie
              wprowadzenie.  Większość zwykłych znaków jest pod to podłączona.

       backward-char  n ^B
              Przesuwa kursor n znaków wstecz.

       backward-word  n ^[B
              Przesuwa kursor wstecz na początek słowa; słowa składają się  ze
              znaków alfanumerycznych, podkreślenia (_) i dolara ($).

       beginning-of-history ^[<
              Przesuwa na początek historii.

       beginning-of-line ^A
              Przesuwa kursor na początek edytowanego wiersza wprowadzenia.

       capitalize-word n ^[c, ^[C
              Przemienia  pierwszy znak w następnych n słowach na dużą literę,
              pozostawiając kursor za końcem ostatniego słowa.  Jeśli  bieżący
              wiersz nie zaczyna się od znaku komentarza, zostaje on dodany na
              początku  wiersza  i  wiersz  zostaje  wprowadzony  (tak   jakby
              naciśnięto  przełamanie  wiersza), w przeciwnym razie istniejące
              znaki komentarza zostają usunięte i kursor  zostaje  umieszczony
              na początku wiersza.

       complete ^[^[
              Automatycznie  dopełnia  tyle  ile  jest  jednoznaczne  w nazwie
              komendy  lub  nazwie  pliku  zawierającej  kursor.   Jeśli  cała
              pozostała  część  komendy  lub  nazwy pliku jest jednoznaczna to
              przerwa zostaje wyświetlona po wypełnieniu,  chyba  że  jest  to
              nazwa  katalogu,  w  którym to razie zostaje dołączone /.  Jeśli
              nie ma komendy lub nazwy pliku zaczynającej się od takiej części
              słowa,  to  zostaje wyprowadzony znak dzwonka (zwykle powodujacy
              słyszalne zabuczenie).

       complete-command ^X^[
              Automatycznie  dopełnia  tyle  ile  jest  jednoznaczne  z  nazwy
              komendy  zawierającej  częściowe słowo przed kursorem, tak jak w
              komendzie complete opisanej powyżej.

       complete-file ^[^X
              Automatycznie dopełnia tyle ile jest jednoznaczne z nazwy  pliku
              zawierającego   częściowe   słowo  przed  kursorem,  tak  jak  w
              komendzie complete opisanej powyżej.

       complete-list ^[=
              Wymień możliwe dopełnienia bieżącego słowa.

       delete-char-backward n ERASE, ^?, ^H
              Skasuj n znaków przed kursorem.

       delete-char-forward n
              Skasuj n znaków po kursorze.

       delete-word-backward n ^[ERASE, ^[^?, ^[^H, ^[h
              Skasuj n słów przed kursorem.

       delete-word-forward n ^[d
              Kasuje znaki po kursorze, aż do końca n słów.

       down-history n ^N
              Przewija bufor historii w  przód  n  wierszy  (później).   Każdy
              wiersz  wprowadzenia  zaczyna  się  oryginalnie  tuż po ostatnim
              miejscu w buforze  historii,  tak  więc  down-history  nie  jest
              przydatny dopóki nie wykonano search-history lub up-history.

       downcase-word n ^[L, ^[l
              Zamień na małe litery następnych n słów.

       end-of-history ^[>
              Porusza do końca historii.

       end-of-line ^E
              Przesuwa kursor na koniec wiersza wprowadzenia.

       eot ^_ Działa  jako  koniec  pliku;  Jest  to  przydatne, albowiem tryb
              edycji wprowadzenia wyłącza normalną regularyzację  wprowadzenia
              terminala.

       eot-or-delete n ^D
              Działa  jako  eot  jeśli  jest  samotne na wierszu; w przeciwnym
              razie działa 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 którym
              był kursor.

       expand-file ^[*
              Dodaje  *  do  bieżącego  słowa  i zastępuje dane słowo wynikiem
              rozwinięcia nazwy pliku na danym słowie.  Gdy nie  pasują  żadne
              pliki, zadzwoń.

       forward-char n ^F
              Przesuwa kursor naprzód o n znaków.

       forward-word n ^[f
              Przesuwa kursor naprzód na zakończenie n-tego słowa.

       goto-history n ^[g
              Przemieszcza do historii numer n.

       kill-line KILL
              Kasuje cały wiersz wprowadzenia.

       kill-region ^W
              Kasuje wprowadzenie pomiędzy kursorem a znacznikiem.

       kill-to-eol n ^K
              Jeśli  ominięto  n,  to  kasuje wprowadzenia od kursora do końca
              wiersza, w przeciwnym razie kasuje znaki pomiędzy kursorem a  n-
              tą kolumną.

       list ^[?
              Wyświetla  sortowaną,  skolumnowaną  listę  nazw komend lub nazw
              plików (jeśli są takowe), które mogłyby dopełnić częściowe słowo
              zawierające kursor.  Do nazw katalogów zostaje dołączone /.

       list-command ^X?
              Wyświetla  sortowaną,  skolumnowaną  listę nazw komend (jeśli są
              takowe), które  mogłyby  dopełnić  częściowe  słowo  zawierające
              kursor.

       list-file ^X^Y
              Wyświetla  sortowaną,  skolumnowaną  listę nazw plików (jeśli są
              takowe), które  mogłyby  dopełnić  częściowe  słowo  zawierające
              kursor.   Specyfikatory rodzaju plików zostają dołączone tak jak
              powyżej opisano pod list.

       newline ^J, ^M
              Powoduje  przetworzenie  bieżącego  wiersza   wprowadzeń   przez
              powłokę.   Kursor  może  znajdować  się aktualnie gdziekolwiek w
              wierszu.

       newline-and-next ^O
              Powoduje  przetworzenie  bieżącego  wiersza   wprowadzeń   przez
              powłokę,  po  czym następny wiersz z historii staje się wierszem
              bieżącym.  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) słowo poprzedniej komendy zostaje wprowadzone na
              miejscu kursora.

       quote ^^
              Następny znak zostaje  wzięty  dosłownie  zamiast  jako  komenda
              edycji.

       redraw ^L
              Przerysuj ponownie zachętę i bieżący wiersz wprowadzenia.

       search-character-backward n ^[^]
              Szukaj  w  tył  w bieżącym wierszu n-tego wystąpienia następnego
              wprowadzonego znaku.

       search-character-forward n ^]
              Szukaj w przód w bieżącym wierszu n-tego wystąpienia  następnego
              wprowadzonego znaku.

       search-history ^R
              Wejdź  w  kroczący  tryb  szukania.   Wewnętrzna  lista historii
              zostaje  przeszukiwana  wstecz  za   komendami   odpowiadającymi
              wprowadzeniu.    początkowe   ^   w  szukanym  ciągu  zakotwicza
              szukanie.   Klawisz  przerwania   powoduje   opuszczenie   trybu
              szukania.   Inne komendy zostaną wykonywane po opuszczeniu trybu
              szukania.  Ponowne komendy  search-history  kontynuują  szukanie
              wstecz  do  następnego  poprzedniego  wystąpienia wzorca.  Bufor
              historii zawiera tylko skończoną  ilość  wierszy;  dla  potrzeby
              najstarsze zostają wyrzucone.

       set-mark-command ^[<space>
              Postaw znacznik na bieżącej pozycji kursora.

       stuff  Pod  systemami  to  wspomagającymi,  wypycha  podłączony znak  z
              powrotem do wejścia terminala, gdzie może on  zostać  specjalnie
              przetworzony  przez  terminal.   Jest to przydatne np. dla opcji
              BRL ^T minisystata.

       stuff-reset
              Działa tak jak stuff, a  potem  przerywa  wprowadzenie  tak  jak
              przerwanie.

       transpose-chars ^T
              Na  końcu  wiersza  lub jeśli włączono opcję gmacs, zamienia dwa
              poprzedzające znaki; w przeciwnym  razie  zamienia  poprzedni  i
              bieżący znak, po czym przesuwa kursor jeden znak na prawo.

       up-history n ^P
              Przewija bufor historii n wierszy wstecz (wcześniej).

       upcase-word n ^[U, ^[u
              Zamienia następnych n słów w duże litery.

       version ^V
              Wypisuje wersję ksh.  Obecny bufor edycji zostaje odtworzony gdy
              tylko zostanie  naciśnięty  jakikolwiek  klawisz  (po  czym  ten
              klawisz zostaje przetworzony, chyba że
               jest to przerwa).

       yank ^Y
              Wprowadź  ostatnio  skasowany  ciąg  tekstu  na  bieżącą pozycję
              kursora.

       yank-pop ^[y
              bezpośrednio po yank, zamienia  wprowadzony  tekst  na  następny
              poprzednio skasowany ciąg tekstu.

   Interkacyjny tryb edycji wiersza poleceń vi
       Edytor vi wiersza komendy w ksh obsługuje w zasadzie te same komendy co
       edytor vi (patrz vi(1)), poza następującymi wyjątkami:

         o    zaczyna w trybie wprowadzania,

         o    ma komendy uzupełniania nazw plików i komend (=, \, *,  ^X,  ^E,
              ^F i, opcjonalnie, <tab>),

         o    komenda  _  działa  odmiennie  (w ksh jest to komenda ostatniego
              argumentu, a w vi przechodzenie do początku bieżącego wiersza),

         o    komendy / i G poruszają się w kierunkach odwrotnych do komendy j

         o    brak   jest   komend,   które  nie  mają  znaczenia  w  edytorze
              obsługującym jeden wiersz (w szczeglnoci, przewijanie  ekranu,
              komendy ex :, itp.).

       Proszę  zwrócić  uwagę,  że ^X oznacza control-X; oraz <esc>, <space> i
       <tab> stosowane są za escape, space i tab, odpowiednio (bez żartów).

       Tak jak w vi, są dwa tryby: tryb wprowadzania i tryb komend.  W  trybie
       wprowadzania,  większość znaków zostaje po prostu umieszczona w buforze
       na bieżącym  miejscu  kursora  w  kolejności  ich  wpisywania,  chociaż
       niektóre   znaki   zostają   traktowane  specjalnie.   W  szczególności
       następujące znaki odpowiadają obecnym ustawieniom tty (patrz stty(1)) i
       zachowują  ich  normalne  znaczenia  (normalne  wartości  są  podane  w
       nawiasach): skasuj (^U),  wymaż  (^?),  wymaż  słowo  (^W),  eof  (^D),
       przerwij  (^C)  i  zakończ  (^\).   Poza  powyższymi  dodatkowo również
       następujące znaki zostają traktowane specjalnie w trybie wprowadzania:

        ^H                       kasuje poprzedni znak
        ^V                       bezpośrednio  następny:  następny  naciśnięty
                                 znak nie zostaje traktowany specjalnie (można
                                 tego  użyć  do  wprowadzenia  opisywanych  tu
                                 znaków)

        ^J ^M                    koniec   wiersza:   bieżący   wiersz  zostaje
                                 wczytany, rozpoznany i wykonany przez powłokę
        <esc>                    wprowadza   edytor   w   tryb  komend  (patrz
                                 poniżej)
        ^E                       wyliczanie  komend  i  nazw   plików   (patrz
                                 poniżej)
        ^F                       dopełnianie   nazw  plików  (patrz  poniżej).
                                 Jeśli zostanie użyte dwukrotnie,  to  wówczas
                                 wyświetla  listę  możliwych  dopełnień; jeśli
                                 zostanie   użyte   trzykrotnie,   to   kasuje
                                 dopełnienie.
        ^X                       rozwijanie   nazw   komend  i  plików  (patrz
                                 poniżej)
        <tab>                    opcjonalnie dopełnianie nazw plików i  komend
                                 (patrz ^F powyżej), włączane przez set -o vi-
                                 tabcomplete

       Jeśli jakiś wiersz jest dłuższy od szerokości  ekranu  (patrz  parametr
       COLUMNS),  to zostaje wyświetlony znak >, + lub < w ostatniej kolumnie,
       wskazujący odpowiednio na więcej znaków po,  przed  i  po,  oraz  przed
       obecną pozycją.  Wiersz jest przewijany poziomo w razie potrzeby.

       W trybie komend, każdy znak zostaje interpretowany jako komenda.  Znaki
       którym nie odpowiada żadna komenda, które  są  niedopuszczalną  komendą
       lub  są  komendami  nie  do  wykonania, wszystkie wyzwalają dzwonek.  W
       następujących opisach komend, n wskazuje, że komendę  można  poprzedzić
       numerem  (tzn., 10l przesuwa w prawo o 10 znaków); gdy brak przedrostka
       numerowego, to zakłada się,  że  n  jest  równe  1,  chyba  że  powiemy
       inaczej.   Zwrot  `bieżąca  pozycja'  odnosi  się  do  pozycji pomiędzy
       kursorem a  znakiem  przed  nim.   `Słowo'  to  ciąg  liter,  cyfr  lub
       podkreśleń  albo ciąg nie nieliter, niecyfr, niepodkreśleń, niebiałych-
       znaków (tak wic, ab2*&^ zawiera dwa słowa),  oraz  `duże  słowo'  jest
       ciągiem niebiałych znaków.

       Specjalne ksh komendy vi
              Następujących  komend  brak  lub  są  one  odmienne  od  tych  w
              normalnym edytorze plików vi:

              n_     wprowadź przerwę z  następstwem  n-tego  dużego  słowa  z
                     ostatniej  komendy w historii na bieżącej pozycji i wejdź
                     w tryb wprowadzania; jeśli  nie  podano  n  to  domyślnie
                     zostaje wprowadzone ostatnie słowo.

              #      wprowadź   znak  komentarza  (#)  na  początku  bieżącego
                     wiersza i przekaż ten wiersz do powłoki (  tak  samo  jak
                     I#^J).

              ng     tak  jak  G,  z  tym że, jeśli nie podano n to dotyczy to
                     ostatnio zapamiętanego wiersza.

              nv     edytuj wiersze n stosując edytor vi; jeśli nie podano  n,
                     to  edytuje  bieżący wiersz.  Właściwą wykonywaną komendą
                     jest `fc -e ${VISUAL:-${EDITOR:-vi}} n'.

              * i ^X dopełnianie komendy lub nazwy pliku  zostaje  zastosowane
                     do  obecnego  dużego  słowa (po dodaniu *, jeśli to słowo
                     nie zawiera żadnych znaków  dopełniania  nazw  plików)  -
                     duże  słowo zostaje zastąpione słowami wynikowymi.  Jeśli
                     bieżące  duże  słowo  jest  pierwszym  w   wierszu   (lub
                     występuje  po  jednym z następujących znaków: ;, |, &, (,
                     )) i nie  zawiera  ukośnika  (/)  to  rozwijanie  komendy
                     zostaje  wykonane,  w  przeciwnym  razie zostaje wykonane
                     rozwijanie nazwy plików.  Rozwijanie  komend  podpasowuje
                     duże  słowo  pod  wszelkie  aliasy,  funkcje  i wbudowane
                     komendy  jak  i  również   wszelkie   wykonywalne   pliki
                     odnajdywane przeszukując katalogi wymienione w parametrze
                     PATH.  Rozwijanie nazw plików dopasowuje  duże  słowo  do
                     nazw  plików w bieżącym katalogu.  Po rozwinięciu, kursor
                     zostaje umieszczony tuż po ostatnim  słowie  na  końcu  i
                     edytor jest w trybie wprowadzania.

              n\, n^F, n<tab> i n<esc>
                     dopełnianie  nazw  komend/plików:  zastępuje bieżące duże
                     słowo najdłuższym, jednoznacznym dopasowaniem  otrzymanym
                     przez  rozwinięcie  nazwy  komendy/pliku.   <tab> zostaje
                     jedynie  rozpoznane  jeśli  została  włączona  opcja  vi-
                     tabcomplete, podczas gdy <esc> zostaje jedynie rozpoznane
                     jeśli została włączona opcja  vi-esccomplete  (patrz  set
                     -o).   Jeśli  podano  n  to  zostaje  użyte  n-te możliwe
                     dopełnienie (z tych zwracanych przez  komendę  wyliczania
                     dopełnień nazw komend/plików).

              = i ^E wyliczanie  nazw  komend/plików: wymień wszystkie komendy
                     lub pliki pasujące pod obecne duże słowo.

              ^V     wyświetl wersję pdksh; jest ona wyświetlana do następnego
                     naciśnięcia klawisza (ten klawisz zostaje zignorowany).

              @c     rozwinięcie  makro:  wykonaj  komendy  znajdujące  się  w
                     aliasie _c.

       Komendy przemieszczania w wierszu

              nh i n^H
                     przesuń się na lewo n znaków.

              nl i n<space>
                     przesuń się w prawo n znaków.

              0      przesuń się do kolumny 0.

              ^      przesuń się do pierwszego niebiałego znaku.

              n|     przesuń się do kolumny n.

              $      przesuń się do ostatniego znaku.

              nb     przesuń się wstecz n słów.

              nB     przesuń się wstecz n dużych słów.

              ne     przesuń się na przód do końca słowo n razy.

              nE     przesuń się na przód do końca dużego słowa n razy.

              nw     przesuń się na przód o n słów.

              nW     przesuń się na przód o n dużych słów.

              %      odnajdź wzór: edytor szuka do przodu najbliższego nawiasu
                     zamykającego (okrągłego, prostokątnego lub klamrowego), a
                     następnie przesuwa się między  nim  a  odpowiadającym  mu
                     nawiasem otwierającym.

              nfc    przesuń się w przód do n-tego wystąpienia znaku c.

              nFc    przesuń się w tył do n-tego wystąpienia znaku c.

              ntc    przesuń się w przód tuż przed n-te wystąpienie znaku c.

              nTc    przesuń się w tył tuż przed n-te wystąpienie 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 między wierszami

              nj, n+ i n^N
                     przejdź do n-tego następnego wiersza w historii.

              nk, n- i n^P
                     przejdź do n-tego poprzedniego wiersza w historii.

              nG     przejdź do  wiersza  n  w  historii;  jeśli  brak  n,  to
                     przenosi   się  do  pierwszego  zapamiętanego  wiersza  w
                     historii.

              ng     tak jak G, tylko, że jeśli  nie  podano  n  to  idzie  do
                     ostatnio zapamiętanego wiersza.

              n/cig szukaj  wstecz  w  historii  n-tego wiersza zawierającego
                     cig; jeśli cig zaczyna się od ^, to reszta  ciągu  musi
                     występować   na   samym  początku  wiersza  historii  aby
                     pasowała.

              n?string
                     tak jak /, tylko, że szuka do przodu w historii.

              nn     szukaj  n-tego  wystąpienia  ostatnio  szukanego   ciągu;
                     kierunek jest ten sam co kierunek ostatniego szukania.

              nN     szukaj   n-tego  wystąpienia  ostatnio  szukanego  ciągu;
                     kierunek jest przeciwny do kierunku ostatniego  szukania.

       Komendy edycji

              na     dodaj tekst n-krotnie: przechodzi w tryb wprowadzania tuż
                     po bieżącej pozycji.  Dodanie zostaje  jedynie  wykonane,
                     jeśli  zostanie  ponownie uruchomiony tryb komendy (tzn.,
                     jeśli <esc> zostanie użyte).

              nA     tak jak a, z tą różnicą, że dodaje do końca wiersza.

              ni     dodaj tekst n-krotnie: przechodzi w tryb wprowadzania  na
                     bieżącej  pozycji.   Dodanie  zostaje  jedynie  wykonane,
                     jeśli zostanie ponownie uruchomiony tryb  komendy  (tzn.,
                     jeśli <esc> zostanie użyte).

              nI     tak jak i, z tą różnicą, że dodaje do tuż przed pierwszym
                     niebiałym znakiem.

              ns     zamień następnych n  znaków  (tzn.,  skasuj  te  znaki  i
                     przejdź do trybu wprowadzania).

              S      zastąp   cały   wiersz:  wszystkie  znaki  od  pierwszego
                     niebiałego znaku do końca  wiersza  zostają  skasowane  i
                     zostaje uruchomiony tryb wprowadzania.

              nckomenda-przemieszczenia
                     przejdź  z  bieżącej  pozycji  do pozycji wynikającej z n
                     komenda-przemieszczenias (tj., skasuj wskazany  region  i
                     wejdź w tryb wprowadzania); jeśli komend-przemieszczenia
                     jest  c,  to  wiersz  zostaje  zmieniony  od   pierwszego
                     niebiałego znaku począwszy.

              C      zmień od obecnej pozycji do końca wiersza (tzn. skasuj do
                     końca wiersza i przejdź do trybu wprowadzania).

              nx     skasuj następnych n znaków.

              nX     skasuj poprzednich n znaków.

              D      skasuj do końca wiersza.

              ndmove-cmd
                     skasuj od obecnej pozycji  do  pozycji  wynikającej  z  n
                     krotnego    move-cmd;    move-cmd    może   być   komendą
                     przemieszczania  (patrz  powyżej)  lub  d,  co   powoduje
                     skasowanie bieżącego wiersza.

              nrc    zamień następnych n znaków na znak c.

              nR     zamień:   wejdź   w   tryb  wprowadzania  lecz  przepisuj
                     istniejące znaki zamiast wprowadzania przed  istniejącymi
                     znakami.  Zamiana zostaje wykonana n krotnie.

              n~     zmień wielkość następnych n znaków.

              nymove-cmd
                     wytnij  od  obecnej  pozycji  po  pozycję  wynikającą z n
                     krotnego move-cmd do  bufora  wycinania;  jeśli  move-cmd
                     jest y, to cały wiersz zostaje wycięty.

              Y      wytnij od obecnej pozycji do końca wiersza.

              np     wklej zawartość bufora wycinania tuż po bieżącej pozycji,
                     n krotnie.

              nP     tak jak p, tylko że bufor zostaje  wklejony  na  bieżącej
                     pozycji.

       Różne komendy vi

              ^J i ^M
                     bieżący  wiersz  zostaje  wczytany, rozpoznany i wykonany
                     przez powłokę.

              ^L i ^R
                     odrysuj bieżący wiersz.

              n.     wykonaj ponownie ostatnią komendę edycji n razy.

              u      odwróć ostatnią komendę edycji.

              U      odwróć wszelkie zmiany dokonane w danym wierszu.

              intr i quit
                     znaki terminala przerwy i zakończenia powodują skasowania
                     bieżącego wiersza i wyświetlenie nowej zachęty.

PLIKI

       ~/.profile
       /etc/profile
       /etc/suid_profile

BŁĘDY

       Wszelkie  błędy  w  pdksh  należy zgłaszać pod adresem pdksh@cs.mun.ca.
       Proszę  podać  wersję  pdksh  (echo  $KSH_VERSION),   maszynę,   system
       operacyjny  i  stosowany  kompilator  oraz opis jak powtórzyć dany błąd
       (najlepiej mały skrypt powłoki demonstrujący dany  błąd).   Następujące
       może być również pomocne, jeśli ma znaczenie (jeśli nie jesteś pewny to
       podaj to również): stosowane opcje (zarówno z  opcje  options.h  jak  i
       ustawione  -o  opcje)  i  twoja  kopia  config.h (plik generowany przez
       skrypt   configure).    Nowe   wersje   pdksh    można    otrzymać    z
       ftp://ftp.cs.mun.ca/pub/pdksh/.

AUTORZY

       Ta  powłoka  powstała  z  publicznego  klonu  siódmego  wydania powłoki
       Bourne'a wykonanego przez Charlesa Forsytha  i  z  części  powłoki  BRL
       autorstwa  Doug  A.  Gwyna,  Douga  Kingstona,  Rona Natalie;a, Arnolda
       Robbinsa, Lou Salkinda i innych.  Pierwsze wydanie pdksh stworzył  Eric
       Gisin,  a  następnie  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  źródeł  zawiera  bardziej  kompletną  listę
       ludzi i ich wkładu do rozwoju tej powłoki.

       Tłumaczenie  tego  podręcznika  na  język polski wykonał Marcin Dalecki
       <dalecki@cs.net.pl>.

ZOBACZ TAKŻE

       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.

                                22 lutego 1999                          KSH(1)