Expr

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

expr je program pro prostředí příkazového řádku v operačním systému Unix a unixových operační systémech, který vyhodnocuje matematické výrazy a výsledek vypisuje na standardní výstup. Poprvé se objevil v Unix v7. Příkaz je také dostupný pro Microsoft Windows v sadě programů UnxUtils, nativních portů běžných GNU unixových programů do Win32. Příkaz expr byl také portován do operačního systému IBM i.

...

Úvod

expr vyhodnocuje celočíselné nebo řetězcové výrazy, včetně regulárních výrazů pro vyhledávání vzorků v řetězci. Příkaz expr vyžaduje, aby každý prvek výrazu (operátor, konstanta, řetězec, atd. +more) byl zadán jako samostatný parametr (oddělený mezerami od ostatních prvků výrazu). Poměrně obtížný problém představuje zápis výrazu takovým způsobem, aby unixový shell neiterpretoval speciální znaky ve výrazu po svém.

Syntax

Syntax: expr výraz

Dostupné operátory: * pro celá čísla: sčítání, odčítání, násobení, dělení a modulo * pro řetězce: vyhledání vzorku v řetězci pomocí regulárního výrazu; v některých verzích: vyhledání podřetězce v řetězci (“index“), získání podřetězce (“substr“), délka řetězce (“length“) * pro obojí: porovnání (je rovno, není rovno, menší než, atd.)

Příklad

Následující příkaz ukazuje (nePOSIXový) příklad obsahující logické výrazy: expr length "abcdef" "" 8 Tento příklad vypíše číslo "1"; délka řetězce "abcdef" je 6, což není méně než 5 (takže výraz vlevo od | není pravdivý). Ale 15 minus 4 je 11, což je více než 8, takže výraz vpravo od | je pravdivý, díky čemuž bude výsledek logického nebo také pravdivý, což je reprezentováno hodnotou 1. +more Protože výraz neobsahuje chybu, návratový kód příkazu je nula.

Pro čistě aritmetické výpočty je často pohodlnější použít příkaz bc. Například: echo "3 * 4 + 14 / 2" | bc protože bc očekává, že přijme celý výraz bude tvořit jeden argument.

Při vytváření přenositelných skriptů se nesmí používat nestandardní rozšíření jako jsou operátory index, length, match a substr; porovnávání řetězců je dostupné, ale musí používat syntaxi podle „string : regexp“.

Odkazy

Reference

Související články

Seznam unixových nástrojů

Externí odkazy

[url=https://www.gnu.org/software/coreutils/manual/html_node/expr-invocation.html#expr-invocation]expr invocation in GNU coreutils manual[/url]

Kategorie:Unixové programátorské nástroje Kategorie:Standardní unixové příkazy

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top