Provided by: manpages-pl_0.7-1_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)