focal (1) ksh.1.gz

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

NAZWA

       ksh - Publiczna implementacja powłoki Korna

WYWOŁANIE

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

OPIS

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

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

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

       -c łańcuch_komend
              powłoka wykonuje komendę(y) zawartą(e) w łańcuchu_komend

       -i     tryb interakcyjny — patrz poniżej

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

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

       -r     tryb ograniczony — patrz poniżej

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       W  poniższym  opisie poleceń złożonych, listy komend (zaznaczone przez lista), po których następuje słowo
       zarezerwowane, muszą kończyć się średnikiem, przełamaniem wiersza  lub  (poprawnym  gramatycznie)  słowem
       zarezerwowanym.  Przykładowo,
              { echo foo; echo bar; }
              { echo foo; echo bar<newline>}
              { { echo foo; echo bar; } }
       są poprawne, natomiast
              { echo foo; echo bar }
       nie.

       ( lista )
              Wykonaj  listę  w  podpowłoce.  Nie  ma  bezpośredniej  możliwości przekazania wartości parametrów
              podpowłoki z powrotem do jej powłoki macierzystej.

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

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

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

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

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

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

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

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

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

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

       [[ expression ]]
              Podobne do komend test i [ ... ] (które opisujemy później), z następującymi różnicami:
                •    Rozdzielanie pól i generacja nazw plików nie są wykonywane na argumentach.
                •    Operatory -a (i) oraz -o (lub) zostają zastąpione odpowiednio przez && i ||.
                •    Operatory (dokładniej: -f, =, !, itp.)  nie mogą być cytowane.
                •    Drugi operand dla != i = jest traktowany jako wzorzec (w szczególności, porównanie
                                                         [[ foobar = f*r ]]
                     jest sukcesem).
                •    Mamy  do  dyspozycji  dwa  dodatkowe  operatory  binarne: < i >, które zwracają prawdę, gdy
                     pierwszy łańcuchowy operand jest odpowiednio mniejszy  lub  większy  od  drugiego  operandu
                     łańcuchowego.
                •    Jednoargumentowa  postać  operacji  test,  która sprawdza, czy jedyny operand jest długości
                     zerowej, jest niedozwolona - operatory zawsze muszę być wykazywane jawnie, w szczególności,
                     zamiast
                                                              [ ciąg ]
                     należy użyć
                                                            [[ -n ciąg ]]
                •    Podstawienia  parametrów,  komend  i  arytmetyczne  zostają  wykonane  w trakcie wyliczania
                     wyrażenia. Do operatorów &&  i  ||  stosowana  jest  metoda  uproszczonego  określania  ich
                     wartości.  To znaczy, że w wyrażeniu
                                                   [[ -r foo && $(< foo) = b*r ]]
                     wartość  $(<  foo)  zostaje wyliczona wtedy i tylko wtedy, gdy plik o nazwie foo istnieje i
                     jest czytelny.

   Cytowanie
       Cytowanie stosuje się do zapobiegania traktowaniu przez powłokę  pewnych  znaków  czy  słów  w  specjalny
       sposób.   Istnieją  trzy metody cytowania: Po pierwsze, \ cytuje następny znak, chyba że mieści się on na
       końcu wiersza, wówczas zarówno \ jak i znak nowej linii zostają usunięte.  Po drugie pojedynczy cudzysłów
       (')  wycytowywuje  wszystko,  aż  po następny pojedynczy cudzysłów (wraz ze zmianami linii włącznie).  Po
       trzecie, podwójny cudzysłów (") wycytowywuje wszystkie znaki, poza $, ` i \, aż po  następny  niecytowany
       podwójny  cudzysłów.   $  i ` wewnątrz podwójnych cudzysłowów zachowują zwykłe znaczenie (tzn.  oznaczają
       podstawienie wartości parametru, komendy lub wyrażenia arytmetycznego), jeśli tylko nie zostanie wykonany
       jakikolwiek  podział pól na wyniku podwójnymi cudzysłowami wycytowanych podstawień.  Jeśli po \, wewnątrz
       ciągu znaków cytowanego podwójnymi cudzysłowami następuje \, $, ` lub ", to zostaje on zastąpiony  drugim
       z  tych  znaków.   Jeśli  po  nim  następuje znak nowej linii, wówczas zarówno \, jak i znak zmiany linii
       zostają usunięte; w przeciwnym razie zarówno znak \, jak i następujący po nim znak nie  podlegają  żadnej
       zamianie.

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

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

       Następujące aliasy są definiowane domyślnie przez powłokę:
              autoload='typeset -fu'
              functions='typeset -f'
              hash='alias -t'
              history='fc -l'
              integer='typeset -i'
              local='typeset'
              login='exec login'
              newgrp='exec newgrp'
              nohup='nohup '
              r='fc -e -'
              stop='kill -STOP'
              suspend='kill -STOP $$'
              type='whence -v'

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              Jak dotychczas niezaimplementowane.

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

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

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

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

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

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

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

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

       LINENO Numer wiersza w funkcji lub aktualnie wykonywanym skrypcie.

       LINES  Ilość wierszy terminala lub okienka pracy.

              Jeszcze niezaimplementowane.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       ?      oznacza dowolny pojedynczy znak.

       *      oznacza dowolną sekwencję znaków.

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

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

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

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

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

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

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

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

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

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

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

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

       > plik Standardowe  wyjście  zostaje  przekierowane  do plik-u.  Jeśli plik nie istnieje, wówczas zostaje
              utworzony; jeśli istnieje i jest to regularny plik oraz została ustawiona opcja noclobber, wówczas
              występuje błąd, w przeciwnym razie dany plik zostaje ucięty do początku.  Proszę zwrócić uwagę, iż
              oznacza to, że komenda jakaś_komenda < foo > foo otworzy plik foo do odczytu, a następnie  skasuje
              jego  zawartość,  gdy  otworzy  go  do  zapisu,  zanim  jakaś_komenda  otrzyma szansę przeczytania
              czegokolwiek z foo.

       >| plik
              tak jak dla >, tylko że  zawartość  pliku  zostanie  skasowana  niezależnie  od  ustawienia  opcji
              noclobber.

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

       < plik standardowe wejście zostaje przekierowane do pliku, który jest otwierany w trybie do odczytu.

       <> plik
              tak jak dla <, tylko że plik zostaje otworzony w trybie zapisu i czytania.

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

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

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

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

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

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

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

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

       Operatory unarne:
              + - ! ~ ++ --

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

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

       Operatory grupujące:
              ( )

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

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

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

              unary -
                     negacja.

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

              ~      arytmetyczna negacja (bit-w-bit).

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

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

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

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

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

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

              &&     logiczna koniunkcja; wynikiem jest 1 jeśli obydwa argumenty są niezerowe, 0 gdy nie.  Prawy
                     argument zostaje wyliczony jedynie, gdy lewy jest niezerowy.

              |      arytmetyczna alternatywa (bit-w-bit).

              ^      arytmetyczne albo (bit-w-bit).

              &      arytmetyczna koniunkcja (bit-w-bit).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       Specjalne polecenia w POSIX

              .          continue   exit       return     trap
              :          eval       export     set        unset
              break      exec       readonly   shift

       Dodatkowe specjalne komendy w ksh

              builtin    times      typeset

       Bardzo specjalne komendy (tryb nie-POSIX-owy)

              alias      readonly   set        typeset

       Regularne komendy w POSIX

              alias      command    fg         kill       umask
              bg         false      getopts    read       unalias
              cd         fc         jobs       true       wait

       Dodatkowe regularne komendy ksh

              [          let        pwd        ulimit
              echo       print      test       whence

       W  przyszłości  dodatkowe  specjalne  komendy oraz regularne komendy ksh mogą być traktowane odmiennie od
       specjalnych i regularnych komand POSIX.

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

       Poniżej opisujemy specjalne i regularne polecenia wbudowane:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       return [kod]
              Powrót z funkcji lub . skryptu, z kodem wyjścia kod.   Jeśli  nie  podano  wartości  kod,  wówczas
              zostaje  domyślnie  zastosowany  kod  wyjścia  ostatnio wykonanej komendy.  Przy zastosowaniu poza
              funkcją lub . skryptem, komenda ta ma ten sam efekt co  exit.   Proszę  zwrócić  uwagę,  iż  pdksh
              traktuje  zarówno  profile  jak  i  pliki z $ENV jako . skrypty, podczas gdy oryginalny Korn shell
              jedynie profile traktuje jako . skrypty.

       set [+-abCefhkmnpsuvxX] [+-o [opcja]] [+-A nazwa] [--] [arg ...]
              Komenda set służy do ustawiania (-)  albo  kasowania  (+)  opcji  powłoki,  ustawiania  parametrów
              pozycyjnych  lub  ustawiania parametru ciągowego.  Opcje mogą być zmienione przy pomocy syntaktyki
              +-o opcja, gdzie opcja jest pełną nazwą pewnej opcji lub stosując postać  +-litera,  gdzie  litera
              oznacza  jednoliterową  nazwę  danej  opcji  (niewszystkie  opcje  posiadają jednoliterową nazwę).
              Następująca tablica wylicza zarówno litery opcji (gdy mamy takowe), jak i pełne ich nazwy  wraz  z
              opisem wpływów danej opcji.

               -A                                                                 Ustawia   elementy   parametru
                                                                                  ciągowego nazwa  na  arg  ...;
                                                                                  Jeśli   zastosowano  -A,  ciąg
                                                                                  zostaje  uprzednio   ponowiony
                                                                                  (tzn.,   wyczyszczony);  Jeśli
                                                                                  zastosowano    +A,     zastają
                                                                                  ustawione pierwsze N elementów
                                                                                  (gdzie N jest ilością argsów),
                                                                                  reszta pozostaje niezmieniona.
               -a                          allexport                              wszystkie    nowe    parametry
                                                                                  zostają   tworzone   z   cechą
                                                                                  eksportowania
               -b                          notify                                 Wypisuj komunikaty o zadaniach
                                                                                  asynchronicznie,  zamiast  tuż
                                                                                  przed   zachętą.    Ma   tylko
                                                                                  znaczenia    jeśli     została
                                                                                  włączona kontrola zadań (-m).
               -C                          noclobber                              Zapobiegaj       przepisywaniu
                                                                                  istniejących    już     plików
                                                                                  poprzez  przekierowania  > (do
                                                                                  wymuszenia  przepisania   musi
                                                                                  zostać zastosowane >|).

               -e                          errexit                                Wyjdź  (po  wykonaniu  komendy
                                                                                  pułapki    ERR)     tuż     po
                                                                                  wystąpieniu      błędu     lub
                                                                                  niepomyślnym wykonaniu jakiejś
                                                                                  komendy  (tzn.,  jeśli została
                                                                                  ona   zakończona    niezerowym
                                                                                  kodem  wyjścia).   Nie dotyczy
                                                                                  to komend, których kod wyjścia
                                                                                  zostaje  jawnie  przetestowany
                                                                                  konstruktem powłoki takim  jak
                                                                                  wyrażenia if, until, while, &&
                                                                                  lub ||.
               -f                          noglob                                 Nie  rozwijaj   wzorców   nazw
                                                                                  plików.
               -h                          trackall                               Twórz   śledzone   aliasy  dla
                                                                                  wszystkich wykonywanych komend
                                                                                  (patrz    "Aliasy"   powyżej).
                                                                                  Domyślnie     włączone     dla
                                                                                  nieinterakcyjnych powłok.
               -i                          interactive                            Włącz tryb interakcyjny - może
                                                                                  zostać      włączone/wyłączone
                                                                                  jedynie    podczas   odpalania
                                                                                  powłoki.
               -k                          keyword                                Przyporządkowania     wartości
                                                                                  parametrom             zostają
                                                                                  rozpoznawane  gdziekolwiek   w
                                                                                  komendzie.
               -l                          login                                  Powłoka    ma    być   powłoką
                                                                                  zameldowania  -  może   zostać
                                                                                  włączone/wyłączone     jedynie
                                                                                  podczas   odpalania    powłoki
                                                                                  (patrz  "Uruchamianie powłoki"
                                                                                  powyżej).
               -m                          monitor                                Włącz kontrolę zadań (domyślne
                                                                                  dla powłok interakcyjnych).
               -n                          noexec                                 Nie    wykonuj   jakichkolwiek
                                                                                  komend    -    przydatne    do
                                                                                  sprawdzania         syntaktyki
                                                                                  skryptów    (ignorowane    dla
                                                                                  interakcyjnych powłok).
               -p                          privileged                             Ustawiane automatycznie, jeśli
                                                                                  gdy powłoka zostaje odpalona i
                                                                                  rzeczywiste  uid  lub  gid nie
                                                                                  jest identyczne z  odpowiednio
                                                                                  efektywnym uid lub gid.  Patrz
                                                                                  "Uruchamianie powłoki" powyżej
                                                                                  dla opisu, co to znaczy.
               -r                          restricted                             Ustaw  tryb  ograniczony  — ta
                                                                                  opcja  może   zostać   jedynie
                                                                                  zastosowana  podczas odpalania
                                                                                  powłoki.  Patrz  "Uruchamianie
                                                                                  powłoki"   dla  opisu,  co  to
                                                                                  znaczy.
               -s                          stdin                                  Gdy    zostanie    zastosowane
                                                                                  podczas   odpalania   powłoki,
                                                                                  wówczas    komendy     zostają
                                                                                  wczytywane   ze  standardowego
                                                                                  wejścia.             Ustawione
                                                                                  automatycznie,  jeśli  powłoka
                                                                                  została      odpalona      bez
                                                                                  jakichkolwiek argumentów.

                                                                                  Jeśli -s zostaje zastosowane w
                                                                                  komendzie set, wówczas  podane
                                                                                  argumenty              zostają
                                                                                  uporządkowane  zanim   zostaną
                                                                                  one   przydzielone  parametrom
                                                                                  pozycyjnym (lub ciągowi nazwa,
                                                                                  jeśli -A zostało zastosowane).
               -u                          nounset                                Odniesienie  do nieustawionego
                                                                                  parametru  zostaje  traktowane
                                                                                  jako  błąd,  chyba  że  został
                                                                                  zastosowany      jeden       z
                                                                                  modyfikatorów -, + lub =.

               -v                          verbose                                Wypisuj  wprowadzenia  powłoki
                                                                                  na standardowym wyjściu błędów
                                                                                  podczas ich wczytywania.
               -x                          xtrace                                 Wypisuj        komendy       i
                                                                                  przyporządkowania   parametrów
                                                                                  podczas     ich    wykonywania
                                                                                  poprzedzone wartością PS4.
               -X                          markdirs                               Podczas    generowania    nazw
                                                                                  plików    oznaczaj    katalogi
                                                                                  kończącym /.
                                           bgnice                                 Zadania    w    tle    zostają
                                                                                  wykonywane      z      niższym
                                                                                  priorytetem.
                                           braceexpand                            Włącz   rozwijanie    nawiasów
                                                                                  (aka, alternacja).
                                           emacs                                  Włącz  edycję  wiersza komendy
                                                                                  w stylu  BRL  emacsa  (dotyczy
                                                                                  wyłącznie               powłok
                                                                                  interakcyjnych);         patrz
                                                                                  "Interakcyjna  edycja  wiersza
                                                                                  poleceń w trybie emacs".
                                           gmacs                                  Włącz edycję wiersza komendy w
                                                                                  stylu  gmacsa  (Gosling emacs)
                                                                                  (dotyczy   wyłącznie    powłok
                                                                                  interakcyjnych);       obecnie
                                                                                  identyczne  z  trybem   edycji
                                                                                  emacs  z  wyjątkiem  tego,  że
                                                                                  przemiana (^T)  zachowuje  się
                                                                                  nieco inaczej.
                                           ignoreeof                              Powłoka      nie      zostanie
                                                                                  zakończona   jeśli    zostanie
                                                                                  wczytany    znak   zakończenia
                                                                                  pliku.  Należy   użyć   jawnie
                                                                                  exit.
                                           nohup                                  Nie  zabijaj  bieżących  zadań
                                                                                  sygnałem   HUP   gdy   powłoka
                                                                                  zameldowania           zostaje
                                                                                  zakończona.  Obecnie ustawione
                                                                                  domyślnie,   co   się   jednak
                                                                                  zmieni w  przyszłości  w  celu
                                                                                  poprawienia  kompatybilności z
                                                                                  oryginalnym Korn shell  (który
                                                                                  nie    posiada    tej   opcji,
                                                                                  aczkolwiek wysyła sygnał HUP).
                                           nolog                                  Bez znaczenia - w  oryginalnej
                                                                                  powłoce     Korn.    Zapobiega
                                                                                  sortowaniu definicji funkcji w
                                                                                  pliku historii.
                                           physical                               Powoduje,  że  komendy cd oraz
                                                                                  pwd stosują  `fizyczne'  (tzn.
                                                                                  pochodzące  od systemu plików)
                                                                                  ..      katalogi       zamiast
                                                                                  `logicznych'  katalogów (tzn.,
                                                                                  że powłoka interpretuje .., co
                                                                                  pozwala    użytkownikowi   nie
                                                                                  troszczyć  się  o   dowiązania
                                                                                  symboliczne   do   katalogów).
                                                                                  Domyślnie wykasowane.   Proszę
                                                                                  zwrócić  uwagę,  iż ustawianie
                                                                                  tej  opcji   nie   wpływa   na
                                                                                  bieżącą wartość parametru PWD;
                                                                                  jedynie  komenda  cd   zmienia
                                                                                  PWD.   Patrz  komendy cd i pwd
                                                                                  powyżej      dla      dalszych
                                                                                  szczegółów.
                                           posix                                  Włącz  tryb POSIX-owy.  Patrz:
                                                                                  "Tryb POSIX" powyżej.
                                           vi                                     Włącz edycję  wiersza  komendy
                                                                                  w   stylu  vi  (dotyczy  tylko
                                                                                  powłok interakcyjnych).

                                           viraw                                  Bez znaczenia - w  oryginalnej
                                                                                  powłoce   Korna,   dopóki  nie
                                                                                  zostało ustawione viraw,  tryb
                                                                                  wiersza komendy vi pozostawiał
                                                                                  pracę  napędowi  tty   aż   do
                                                                                  wprowadzenia  ESC (^[).  pdksh
                                                                                  jest zawsze w trybie viraw.
                                           vi-esccomplete                         W   trybie   edycji    wiersza
                                                                                  komendy  vi wykonuj rozwijania
                                                                                  komend / plików  gdy  zostanie
                                                                                  wprowadzone   escape   (^[)  w
                                                                                  trybie komendy.
                                           vi-show8                               Dodaj  przedrostek  `M-'   dla
                                                                                  znaków   z   ustawionym  ósmym
                                                                                  bitem.   Jeśli  nie   zostanie
                                                                                  ustawiona  ta  opcja, wówczas,
                                                                                  znaki   z   zakresu    128-160
                                                                                  zostają wypisane bez zmian, co
                                                                                  może być przyczyną problemów.
                                           vi-tabcomplete                         W   trybie   edycji    wiersza
                                                                                  komendy  vi wykonuj rozwijania
                                                                                  komend/ plików jeśli tab  (^I)
                                                                                  zostanie  wprowadzone w trybie
                                                                                  wprowadzania.

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

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

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

       test wyrażenie

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

               ciąg                 ciąg ma  niezerową  długość.
                                    Proszę   zwrócić  uwagę,  iż
                                    mogą   wystąpić    trudności
                                    jeśli  ciąg  okaże  się  być
                                    operatorem (dokładniej,  -r)
                                    -    ogólnie   lepiej   jest
                                    zamiast tego  stosować  test
                                    postaci
                                                  [ X"ciag" != X
                                                  ]
                                           (podwójne wycytowania
                                           zostają   zastosowane
                                           jeśli  ciąg   zawiera
                                           przerwy   lub   znaki
                                           rozwijania plików).
               -r plik              plik   istnieje    i    jest
                                    czytelny
               -w plik              plik    istnieje    i   jest
                                    zapisywalny
               -x plik              plik   istnieje    i    jest
                                    wykonywalny
               -a plik              plik istnieje
               -e plik              plik istnieje
               -f plik              plik jest zwykłym plikiem
               -d plik              plik jest katalogiem
               -c plik              plik jest specjalnym plikiem
                                    napędu ciągowego

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

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

               wyrażenie -o wyrażenie    logiczne lub
               wyrażenie -a wyrażenie    logiczne i
               ! wyrażenie               logiczna negacja
               ( wyrażenie )             grupowanie

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

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

              Uwaga: Częstym błędem jest stosowanie if [ $coś = tam ], co daje wynik  negatywny  jeśli  parametr
              coś  jest  zerowy  lub  nieustawiony, zawiera przerwy (tzn., znaki z IFS), lub gdy jest operatorem
              jednoargumentowym, takim jak ! lub -n.  Proszę zamiast tego stosować testy typu  if  [  "X$coś"  =
              Xtam ].

       times  Wyświetla  zgromadzony czas w przestrzeni użytkownika oraz systemu, który potrzebowała powłoka i w
              niej wystartowane procesy, które się zakończyły.

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

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

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

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

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

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

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

               -Ln                                                 Atrybut  przyrównania  do  lewego  brzegu:  n
                                                                   oznacza szerokość pola.   Jeśli  brak  n,  to
                                                                   zostaje    zastosowana    bieżąca   szerokość
                                                                   parametru    (lub     szerokość     pierwszej
                                                                   przyporządkowywanej   wartości).   Prowadzące
                                                                   białe  przerwy  (tak  jak   i   zera,   jeśli
                                                                   ustawiono   opcję   -Z)  zostają  wykasowane.
                                                                   Jeśli trzeba, wartości zostają  albo  obcięte
                                                                   lub  dodane  przerwy do osiągnięcia wymaganej
                                                                   szerokości.
               -Rn                                                 Atrybut przyrównania  do  prawego  brzegu:  n
                                                                   oznacza  szerokość  pola.   Jeśli  brak n, to
                                                                   zostaje   zastosowana    bieżąca    szerokość
                                                                   parametru     (lub     szerokość    pierwszej
                                                                   przyporządkowywanej wartości).  Białe przerwy
                                                                   na  końcu  zostają  usunięte.   Jeśli trzeba,
                                                                   wartości zostają albo pozbawione prowadzących
                                                                   znaków   albo   przerwy   zostają  dodane  do
                                                                   osiągnięcia wymaganej szerokości.
               -Zn                                                 Atrybut   wypełniania   zerami:   jeśli   nie
                                                                   skombinowany  z -L, to oznacza to samo co -R,
                                                                   tylko, że do rozszerzania zostaje zastosowane
                                                                   zero zamiast przerw.
               -in                                                 Atrybut   całkowitości:   n  podaje  bazę  do
                                                                   zastosowania   podczas   wypisywania    danej
                                                                   wartości  całkowitej  (jeśli  nie  podano, to
                                                                   baza zostaje zaczerpnięta z bazy zastosowanej
                                                                   w   pierwszym   przyporządkowaniu  wartości).
                                                                   Parametrom   z   tym   atrybutem   mogą   być
                                                                   przyporządkowywane    wartości    zawierające
                                                                   wyrażenia arytmetyczne.
               -U                                                  Atrybut   dodatniej   całkowitości:    liczby
                                                                   całkowite  zostają  wyświetlone jako wartości
                                                                   bez znaku (stosowne jedynie  w  powiązaniu  z
                                                                   opcją  -i).   Tej  opcji  brak  w oryginalnej
                                                                   powłoce Korna.
               -f                                                  Tryb funkcji: wyświetlaj lub ustawiaj funkcje
                                                                   i ich atrybuty, zamiast parametrów.
               -l                                                  Atrybut małej litery: wszystkie znaki z dużej
                                                                   litery zostają w wartości zamienione na  małe
                                                                   litery.    (W   oryginalnej   powłoce  Korna,
                                                                   parametr ten oznaczał `długi  całkowity'  gdy
                                                                   był stosowany w połączeniu z opcją -i).
               -p                                                  Wypisuj  pełne  komendy  typeset, które można
                                                                   następnie zastosować  do  odtworzenia  danych
                                                                   atrybutów (lecz nie wartości) parametrów.  To
                                                                   jest wynikiem domyślnym (opcja ta istnieje  w
                                                                   celu zachowania kompatybilności z ksh93).
               -r                                                  Atrybut wyłącznego odczytu: parametry z danym
                                                                   atrybutem nie przyjmują nowych wartości i nie
                                                                   mogą  zostać  wykasowane.  Po ustawieniu tego
                                                                   atrybutu nie można go już więcej odaktywnić.
               -t                                                  Atrybut  zaznaczenia:   bez   znaczenia   dla
                                                                   powłoki;  istnieje  jedynie do zastosowania w
                                                                   aplikacjach.

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

                                                                   Dla funkcji, -u to atrybut  niezdefiniowania.
                                                                   Patrz "Funkcje" powyżej dla implikacji tego.

               -x                                                  Atrybut    eksportowania:    parametry   (lub
                                                                   funkcje)  zostają  umieszczone  w   otoczenia
                                                                   wszelkich wykonywanych komend.  Eksportowanie
                                                                   funkcji  nie  zostało  jeszcze  do  tej  pory
                                                                   zrealizowane.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              Dla ulimit blok to zawsze 512 bajtów.

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

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

                     u      prawa użytkownika

                     g      prawa grupy

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

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

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

                     =      nadaj

                     +      dodaj do

                     -      usuń z

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

                     r      prawo czytania

                     w      prawo zapisu

                     x      prawo wykonywania

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

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

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

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

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

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

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

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

       Gdy  zostaje  stworzone  zadanie,  to  przyporządkowuje mu się numer zadania.  Dla interakcyjnych powłok,
       numer ten zostaje wyświetlony w [..], i w następstwie identyfikatory procesów w  zadaniu,  jeśli  zostaje
       wykonywane  asynchroniczne  zadanie.  Do zadania możemy odnosić się w komendach bg, fg, jobs, kill i wait
       albo poprzez id ostatniego procesu w potoku komend (tak jak jest  on  zapisywany  w  parametrze  $!)  lub
       poprzedzając  numer  zadania  znakiem  procentu  (%).  Również następujące sekwencję z procentem mogą być
       stosowane do odnoszenia się do zadań:

        %+                                                         Ostatnio zatrzymane  zadanie  lub,  gdy  brak
                                                                   zatrzymanych   zadań,  najstarsze  wykonywane
                                                                   zadanie.
        %%, %                                                      To samo co %+.
        %-                                                         Zadanie,  które  byłoby  pod  %+  gdyby   nie
                                                                   zostało zakończone.
        %n                                                         Zadanie z numerem zadania n.

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

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

        numer to numer danego zadania.

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

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

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

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

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

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

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

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

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

       bind   Obecne związki zostają wyliczone.

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

              bind '^[['=prefix-2
              bind '^XA'=up-history
              bind '^XB'=down-history
              bind '^XC'=forward-char
              bind '^XD'=backward-char

       bind -l
              Wymień nazwy funkcji, do których można podłączyć klawisze.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       eot-or-delete n ^D
              Działa jako eot jeśli jest samotne na wierszu; w przeciwnym razie działa jako delete-char-forward.

       error  Error (ring the bell).

       exchange-point-and-mark ^X^X
              Umieść kursor na znaczniku i ustaw znacznik na miejsce, w którym był kursor.

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

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

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

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

       kill-line KILL
              Kasuje cały wiersz wprowadzenia.

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

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

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

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

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

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

       newline-and-next ^O
              Powoduje przetworzenie bieżącego wiersza wprowadzeń przez  powłokę,  po  czym  następny  wiersz  z
              historii  staje  się  wierszem  bieżącym.   Ma  to tylko sens po poprzednim up-history lub search-
              history.

       no-op QUIT
              Nie robi nic.

       prefix-1 ^[
              Przedsionek 1-znakowej sekwencji komendy.

       prefix-2 ^X

       prefix-2 ^[[
              Przedsionek 2-znakowej sekwencji komendy.

       prev-hist-word n ^[., ^[_
              Ostatnie (n-te) słowo poprzedniej komendy zostaje wprowadzone na miejscu kursora.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

         •    zaczyna w trybie wprowadzania,

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

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

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

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

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

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

        ^H                                                         kasuje poprzedni znak

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

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

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

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

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

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

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

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

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

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

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

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

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

       Komendy przemieszczania w wierszu

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

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

              0      przesuń się do kolumny 0.

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

              n|     przesuń się do kolumny n.

              $      przesuń się do ostatniego znaku.

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

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

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

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

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

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

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

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

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

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

              nTc    przesuń się w tył tuż przed n-te wystąpienie znaku c.

              n;     powtarza ostatnią komendę f, F, t lub T.

              n,     powtarza ostatnią komendę f, F, t lub T, lecz porusza się w przeciwnym kierunku.

       Komendy przemieszczania między wierszami

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

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

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

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

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

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

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

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

       Komendy edycji

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

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

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

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

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

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

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

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

              nx     skasuj następnych n znaków.

              nX     skasuj poprzednich n znaków.

              D      skasuj do końca wiersza.

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

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

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

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

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

              Y      wytnij od obecnej pozycji do końca wiersza.

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

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

       Różne komendy vi

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

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

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

              u      odwróć ostatnią komendę edycji.

              U      odwróć wszelkie zmiany dokonane w danym wierszu.

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

PLIKI

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

BŁĘDY

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

AUTORZY

       Ta powłoka powstała z publicznego klonu siódmego  wydania  powłoki  Bourne'a  wykonanego  przez  Charlesa
       Forsytha  i  z  części  powłoki  BRL  autorstwa  Doug  A. Gwyna, Douga Kingstona, Rona Natalie;a, Arnolda
       Robbinsa, Lou Salkinda i innych.  Pierwsze wydanie pdksh stworzył Eric Gisin, a następnie troszczyli  się
       nią  kolejno John R. MacMillan (chance!john@sq.sq.com), i Simon J. Gerraty (sjg@zen.void.oz.au).  Obecnym
       opiekunem jest Michael Rendell (michael@cs.mun.ca).   Plik  CONTRIBUTORS  w  dystrybucji  źródeł  zawiera
       bardziej kompletną listę ludzi i ich wkładu do rozwoju tej powłoki.

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

ZOBACZ TAKŻE

       awk(1),  sh(1),  csh(1),  ed(1),  getconf(1),  getopt(1),  sed(1),  stty(1),  vi(1),  dup(2),  execve(2),
       getgid(2), getuid(2), open(2), pipe(2), wait(2), getopt(3), rand(3), signal(3), system(3), environ(5)

       The KornShell Command and Programming Language, Morris Bolsky i David Korn, 1989, ISBN 0-13-516972-0.

       UNIX Shell Programming, Stephen G. Kochan, Patrick H. Wood, Hayden.

       IEEE Standard for information Technology - Portable Operating System Interface (POSIX) -  Part  2:  Shell
       and Utilities, IEEE Inc, 1993, ISBN 1-55937-255-9.

INFORMACJE O TŁUMACZENIU

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

              man --locale=C 1 ksh

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

                                                 22 lutego 1999                                           KSH(1)