Provided by:
manpages-pl_20060617-2_all 
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.