Expr
expr je program v operačních systémech typu UNIX , který vyhodnocuje hodnotu výrazu a tiskne výsledek na standardní výstup. Každý token výrazu musí být samostatný argument. Operandy mohou být čísla nebo řetězce. Řetězcové operandy není nutné uvádět v uvozovkách, i když to může být nezbytné, aby je shell nemohl interpretovat. expr určuje typ operandu (celé číslo nebo řetězec) operací, která je na něj použita.
Použití
- výraz expr...
- expr {--help,--version}
Podporované operátory
Následující operátory jsou platné (ve vzestupném pořadí priority):
- | - disjunkce
- & - spojení
- < <= = == != >= > - Porovná argumenty a vrátí 1, pokud je relační operace pravdivá, v opačném případě 0. (== je synonymem pro =.) expr se pokusí přetypovat oba argumenty na číselný typ a provést číselné srovnání; pokud přetypování selže alespoň u jednoho argumentu, provede se lexikografické (řetězcové) porovnání
- + - — provede zadané aritmetické operace. Předtím jsou oba argumenty přetypovány na číselný typ; pokud to nelze provést, zobrazí se chybová zpráva
- * / % - proveďte zadané aritmetické operace ("%" je modulo operace, jako v C ). Předtím jsou oba argumenty přetypovány na číselný typ; pokud to nelze provést, zobrazí se chybová zpráva
- : — vyhledávání podle vzoru. Oba argumenty jsou přetypovány na typ řetězce, přičemž druhý je považován za regulární výraz s implicitně předponou „^“. Poté se první argument hledá pro druhý jako vzor. Pokud je nalezena shoda a část řetězce je označena symboly "(" a ")", pak hodnota operace: je tato část; jinak je vráceno celé číslo rovnající se počtu znaků odpovídajících vzoru. Pokud není nalezena shoda a část řetězce je označena symboly "(" a ")", je výsledkem operace : prázdný řetězec, jinak 0. Při zadávání vzoru se použije pouze jedna dvojice závorek " (" a ")" lze použít.
Kromě toho jsou rozpoznána následující klíčová slova:
- match string regex je další způsob vyhledávání podle vzoru. Tento výraz je identický s výrazem "string: regular_expression"
- délka pozice řetězce substr – vrátí podřetězec v řetězci, který začíná na zadané pozici a není větší než zadaná délka. Pokud je pozice nebo délka záporná nebo nejde o číslo, vraťte prázdný řetězec
- index řetězec znak-třída - vrací pozici v řetězci, kde byl znak z znakové třídy poprvé nalezen. Pokud žádný takový znak nebyl nalezen, vraťte 0
- délka řetězec - vrací délku řetězce
Pro seskupování lze použít závorky. Klíčová slova nelze použít jako řetězcové operandy.
Odkazy