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,Implementace nejdůležitějších GNU utilit do Windows 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.) 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" "<" 5 "|" 15 – 4 ">" 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. 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
expr invocation in GNU coreutils manual
Kategorie:Unixové programátorské nástroje Kategorie:Standardní unixové příkazy