Provided by: manpages-pl_20051117-1_all bug

NAZWA

       expr - wykonaj wyrażenia

SKŁADNIA

       expr wyraenie...
       expr [--help] [--version]

OPIS

       Ta strona podręcznika man opisuje polecenie expr w wersji GNU.

       expr  wykonuje  obliczenie  i zapisuje rezultat na standardowe wyjście.
       Każdy żeton wyrażenia musi być oddzielnym argumentem. Operandy mogą być
       liczbami  lub ciągami znaków. Łańcuchów znaków nie cytuje się dla expr,
       choć możesz być zmuszonym do tego, by ochronić je przed powłoką  (znaki
       i  łańcuchy  o  specjalnym  znaczeniu  dla  powłoki, np. spacja).  expr
       rzutuje wszystko znajdujące się po stronie operandowej na  integer  lub
       łańcuch, zależnie od rodzaju operacji.

       Operatory  mogą  być podawane jako symbole wrostkowe lub kluczowe słowa
       przedrostkowe.  Do  grupowania  można  w  zwykły  sposób  korzystać   z
       nawiasów.   (nawiasy  muszą  być  jednak cytowane, by ochronić je przed
       rozwinięciem przez powłokę).

OPERACJE

       Operatory (w kolejności rosnącego priorytetu) to:

   Wyrażenia łańcuchowe
       expr obsługuje dopasowywanie wzorców i inne operatory łańcuchowe.  Mają
       one   niższy  priorytet  niż  operatory  numeryczne  czy  relacyjne  (w
       następnych sekcjach).

       acuch : regex
              Dokonuje porównania wzorców. Argumenty są rzutowane na łańcuchy,
              a  drugi jest uważany za (podstawowe, a la GNU `grep') wyrażenie
              regularne,  poprzedzone  niejawnym   `^'.   Następnie   pierwszy
              argument jest dopasowywany do tego wyrażenia regularnego.  Jeśli
              porównanie jest pomyślne a wyrażenie regularne korzysta z `\(' i
              `\)',  to  wyrażenie  :  zwraca  część  łańcucha  dopasowaną tym
              podwyrażeniem. W przeciwnym zwracana  jest  liczba  dopasowanych
              znaków.

              Jeśli  porównanie  zawiedzie,  operator `:' zwraca łańcuch pusty
              jeśli w wyrażeniu regularnym  użyto  `\('  i  `\)'  lub  zero  w
              przeciwnym wypadku.

              Tylko  pierwsza  para  nawiasów  `\('  i  `\)'  jest istotna dla
              zwracanej  wartości.  Dodatkowe  mają   znaczenie   tylko   przy
              grupowaniu operatorów wyrażenie regularnego.

              W  wyrażeniu  regularnym znaki `\+',  `\?' i `\|' są operatorami
              dopasowującymi odpowiednio jedno  lub  więcej,  zero  lub  jedno
              wystąpienie lub alternatywy rozłączne. Pochodzące z SunOS i inne
              implementacje expr traktują je jak zwykłe znaki. POSIX dopuszcza
              oba zachowania.

       match acuch regex
              Alternatywny  sposóba porównywania wzorców. Jest to identyczne z
              `acuch : regex'.

       substr acuch pozycja dugo
              Zwraca łańcuch  będący  częścią  acucha,  zaczynającą  się  na
              pozycji i o długości najwyżej dugo. Jeśli pozycja lub dugo
              jest niedodatnie lub nienumeryczne, zwracany jest łańcuch pusty.

       index acuch klasa-znakowa
              Zwraca  pierwszą pozycję w acuchu gdzie znaleźć można pierwszy
              znak z klasy-znakowej.  Jeśli nie  znaleziono  żadnego  znaku  z
              klasy-znakowej, zwraca 0.

       length acuch
              Zwraca długość acucha.

       quote token
              Interpretuje  token  jako  łańcuch,  nawet  jeśli jest on słowem
              kluczowym, jak  match  lub  operatorem  jak  `/'.  Umożliwia  to
              testowanie  `expr  length  quote  "$x"'  lub  `expr quote "$x" :
              '.*/\(.\)''  i  otrzymanie  prawidłowego  wyniku   nawet   jeśli
              wartością  $X będzie, na przykład, `/' czy `index'. Ten operator
              jest rozszerzeniem GNU. Jest  wyłączany,  jeśli  ustawiona  jest
              zmienna środowiska POSIXLY_CORRECT.

       Chcąc,  by  expr interpretował słowa kluczowe jako łańcuchy należy użyć
       operatora quote.

   Wyrażenia numeryczne
       expr obsługuje zwyczajowe operatory numeryczne, w kolejności  rosnącego
       priorytetu.   Operatory  łańcuchowe  (poprzednia  sekcja)  mają  niższy
       priorytet, zaś łączniki (connectives) (następna sekcja) wyższy.

       +, -   Dodawanie  i  odejmowanie.  Obydwa  argumenty  są  rzutowane  na
              liczby.  Jeśli to niemożliwe, pojawia się błąd.

       *, /, %
              Mnożenie,  dzielenie,  reszta  z  dzielenia. Obydwa argumenty są
              rzutowane na liczby. Jeśli to niemożliwe, pojawia się błąd.

   Relacje
       expr obsługuje zwyczajowe łączniki i relacje logiczne. Mają one  wyższy
       priorytet   niż   operatory   łańcuchowe   lub  numeryczne,  opisane  w
       poprzednich  sekcjach.  Oto  ich  lista,  poczynając  od  operatorów  o
       najmniejszym priorytecie.

       |      Zwraca  swój  pierwszy  argument  w wypadku gdy jest niezerowy i
              niepusty,  lub  drugi  w  przeciwnym  wypadku.  Jest  to  zwykła
              operacja `or'.

       &      Zwraca  swój  pierwszy argument w wypadku gdy żaden z argumentów
              nie jest zerowy ani pusty. W przeciwnym wypadku zwraca zero.

       <, <=, =, ==, !=, >=, >
              Porównuje argumenty i zwraca 1 jeśli relacja jest prawdziwa  lub
              zero  w przeciwnym wypadku. (== jest synonimem =.)  expr próbuje
              rzutować  obydwa  argumenty  na  liczby  i  dokonać   porównania
              numerycznego;    jeśli    to   zawiedzie,   próbuje   porównania
              leksykalnego.

       Nawiasy są używane zazwyczaj do grupowania. Słowa kluczowe nie mogą być
       używane jako napisy.

   OPCJE
       Gdy  uruchomi  się  GNU  expr  z  jednym  argumentem,  rozpoznawane  są
       następujące opcje:

       --help Wyświetla informację o stosowaniu programu i dostępnych opcjach,
              kończy pracę.

       --version
              Wyświetla numer wersji programu i kończy pracę.

PRZYKŁADY

       Kilka przykładów, łącznie z cytowaniem metaznaków powłoki:

       Dodanie 1 do zmiennej powłokowej, w powłoce zgodnej z powłoką Bourne'a:
       a:

               a=`expr $a + 1`

       Poniższe polecenie może zostać  użyte  do  wydrukowania  niekatalogowej
       części  nazwy  pliku, przechowywanej w zmiennej a (część ta nie powinna
       zawierać `/'):

               expr $a : '.*/\(^.*\)' '^|' $a

       Zauważ cytowane metaznaki powłoki.

       Przykład pokazujący, że `\+' jest operatorem:

               expr aaa : 'a\+'
               => 3

       Nieco innych:

               expr abc : 'a\(.\)c'
               => b
               expr index abcdef cz
               => 3
               expr index index a
               error--> expr: syntax error
               expr index quote index a
               => 0

KOD ZAKOŃCZENIA

       expr zwraca następujący kod zakończenia:

       0      jeśli wyrażenie nie jest ani null, ani 0.

       1      jeśli wyrażenie jest null lub 0,

       2      dla nieprawidłowych wyrażeń.

ZGŁASZANIE BŁĘDÓW

       Błędy proszę zgłaszać, w jęz.ang., do <bug-sh-utils@gnu.org>.

COPYRIGHT

       Copyright (C) 1999 Free Software Foundation, Inc.
       This is free software; see the source for copying conditions.  There is
       NO  warranty;  not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
       PURPOSE.

ZOBACZ TAKŻE

       dc(1), test(1), sh-utils(1).

OD TŁUMACZA

       Zaktualizowano  i  poszerzono  wg  dokumentacji  Texinfo  dla  narzędzi
       powłokowych GNU wersji 2.0.