Provided by: manpages-pl_0.7-2_all bug

NAZWA

       ksh - Publiczna implementacja powłoki Korna

WYWOŁANIE

       ksh [+-abCefhikmnprsuvxX] [+-o opcja] [ [ -c łańcuch_komend [nazwa_komendy]|-s|plik ]
       [argument ...] ]

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       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 łańcuch_komend
              powłoka wykonuje komendę(y) zawartą(e) w łańcuchu_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:
         ·    niedostępna jest komenda cd
         ·    nie mogą być zmieniane parametry: SHELL, ENV i PATH.
         ·    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]
         ·    niedostępna jest opcja -p wbudowanego polecenia command
         ·    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 złożone, 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ą zewnętrzną, 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 zakończenia: 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 słowo in [ [(] wzorzec [| wzorzec] ... ) lista ;; ] ... esac
              Wyrażenie  case  stara  się dopasować słowo do jednego z danych wzorców; 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 słowo ... zakończenie ] do lista done
              gdzie  zakończenie  jest  albo  znakiem  końca  linii, albo ;.  Dla każdego słowa 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
              szczególności, 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 słowo ... zakończenie ] do lista done
              gdzie  zakończenie  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 słów 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 słowo
              ..., 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 szczególności, 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.

       (( wyrażenie ))
              Wartość wyrażenia arytmetycznego wyrażenie zostaje przeliczona; równoważne  do  let
              "wyrażenie".  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:
                ·    Rozdzielanie pól i generacja nazw plików nie są wykonywane na argumentach.
                ·    Operatory -a (i) oraz -o (lub) zostają zastąpione odpowiednio przez && i ||.
                ·    Operatory (dokładniej: -f, =, !, itp.)  nie mogą być cytowane.
                ·    Drugi operand dla != i = jest  traktowany  jako  wzorzec  (w  szczególności,
                     porównanie
                                                  [[ foobar = f*r ]]
                     jest sukcesem).
                ·    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.
                ·    Jednoargumentowa  postać  operacji  test, która sprawdza, czy jedyny operand
                     jest długości zerowej,  jest  niedozwolona  -  operatory  zawsze  muszę  być
                     wykazywane jawnie, w szczególności, zamiast
                                                       [ ciąg ]
                     należy użyć
                                                    [[ -n ciąg ]]
                ·    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ą białymi 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 wyrażeń.

   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:-słowo}
              jeżeli parametrnazwa jest ustawiony i niezerowy, wówczas zostaje  podstawiona  jego
              własna wartość, w przeciwnym razie zostaje podstawione słowo.

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

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

       ${nazwa:?słowo}
              jeżeli parametr nazwa jest ustawiony i niezerowy, wówczas zostaje podstawiona  jego
              własna  wartość,  w  przeciwnym  razie  słowo  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ść  słowo,  wówczas  zostają  na  nim  wykonane  podstawienia
       parametrów,  komend,  arytmetyczne i tyldy; natomiast, jeśli słowo 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ę:

       _ (podkreślenie)
              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
              `#! powłoka'.

       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 szczególności, `alias
       -d fac=/usr/local/facilities; cd ~fac/bin').

   Rozwijanie nawiasów (przemiany)
       Rozwinięcia nawiasów przyjmujące postać
              prefiks{ciąg1,...,ciągN}sufiks
       zostają  rozwinięte  w  N  wyrazów,  z których każdy zawiera konkatenację prefiks, ciągn i
       sufiks (w szczególności., `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 więc {} 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 szczególności, nazwa[wyrażenie]), 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:
         ·    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>&-).
         ·    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.
         ·    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ę ():
         ·    parametr  $0  zostaje  ustawiony  na  nazwę  funkcji  (funkcje w stylu Bourne'a nie
              dotykają $0).
         ·    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).
         ·    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:
         ·    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.
         ·    Ś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:
         ·    \"  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.
         ·    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ń.
         ·    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.
         ·    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).
         ·    getopts:  w  trybie  POSIX-owym, opcje muszą zaczynać się od -; w trybie nie-POSIX-
              owym, opcje mogą się zaczynać albo od -, albo od +.
         ·    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.
         ·    set -: w trybie POSIX-owym, nie wyłącza to ani opcji verbose, ani xtrace; w  trybie
              nie-POSIX-owym, wyłącza.
         ·    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).
         ·    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.
         ·    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.
         ·    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.
         ·    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 ciągopt 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.  ciągopt 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 ciągopt 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_wyjścia ...]
              Wypisz   nazwę   sygnału,   który   zabił   procesy,  które  zakończyły  się  danym
              kodem_wyjścia.  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 [wyrażenie ...]
              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 wyrażenie

       [ wyrażenie ]
              test  wylicza wyrażenia 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:

               ciąg                 ciąg  ma  niezerową długość.
                                    Proszę  zwrócić  uwagę,   iż
                                    mogą    wystąpić   trudności
                                    jeśli  ciąg  okaże  się  być
                                    operatorem  (dokładniej, -r)
                                    -   ogólnie   lepiej    jest
                                    zamiast  tego  stosować test
                                    postaci
                                                  [ X"ciag" != X
                                                  ]
                                           (podwójne wycytowania
                                           zostają   zastosowane
                                           jeśli   ciąg  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).
               ciąg                 ciąg jest niepusty
               -z ciąg              ciąg jest pusty
               -n ciąg              ciąg jest niepusty
               ciąg = ciąg          ciągi są sobie równe
               ciąg == ciąg         ciągi są sobie równe
               ciąg != ciąg         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):

               wyrażenie -o wyrażenie    logiczne lub
               wyrażenie -a wyrażenie    logiczne i
               ! wyrażenie               logiczna negacja
               ( wyrażenie )             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_wyjścia 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.
        %?ciąg                                      Zadanie  zawierające  ciąg  ciąg   (występuje
                                                    błąd, gdy odpowiada mu kilka zadań).
        %ciąg                                       Zadanie    zaczynające   się   ciągiem   ciąg
                                                    (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-sygnału [(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 ciąg=[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 ciągu
              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 ciąg=[podstawienie]
              Dany ciąg wprowadzenia ciąg 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  szczególności,  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:

         ·    zaczyna w trybie wprowadzania,

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

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

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

         ·    brak  jest komend, które nie mają znaczenia w edytorze obsługującym jeden wiersz (w
              szczególności, 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 więc, 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/ciąg szukaj wstecz w historii  n-tego  wiersza  zawierającego  ciąg;  jeśli  ciąg
                     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.

INFORMACJE O TŁUMACZENIU

       Powyższe tłumaczenie pochodzi z nieistniejącego już Projektu Tłumaczenia  Manuali  i  może
       nie  być  aktualne.  W  razie  zauważenia  różnic  między  powyższym opisem a rzeczywistym
       zachowaniem opisywanego programu lub  funkcji,  prosimy  o  zapoznanie  się  z  oryginalną
       (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 1 ksh

       Prosimy  o  pomoc  w  aktualizacji stron man - więcej informacji można znaleźć pod adresem
       http://sourceforge.net/projects/manpages-pl/.

                                          22 lutego 1999                                   KSH(1)