EXPR(1L)

NOME
expr - valuta un'espressione

SINTASSI
expr espressione...
expr {--help,--version}

DESCRIZIONE
Questa documentazione non è mantenuta da lungo tempo e potrebbe essere inaccurata o incompleta. La documentazione in Texinfo è ora la fonte autorevole.

Questa pagina di manuale documenta la versione GNU di expr. expr valuta un'espressione e scrive il risultato nel suo standard output. Ogni token (sequenza di caratteri che viene considerata come un'unica componente) dell'espressione deve essere separato da un argomento. Gli operandi sono numeri o stringhe. Non è necessario racchiudere le stringhe tra virgolette per expr, sebbene ciò possa essere necessario per proteggerle dalla shell. expr forza qualsiasi cosa che appare nella posizione di un operando ad un intero o a una stringa a seconda dell'operazione da applicargli.

Gli operatori sono (in ordine di precedenza crescente):

|   Tiene il suo primo argomento se questi non è null oppure 0, altrimenti il suo secondo. È la solita operazione di `or'.

&   Tiene il primo argomento se nessun argomento è null o 0, altrimenti vale 0.

<  <=  =  ==  !=  >=  >
    Confrontano i loro argomenti e ritornano 1 se la relazione è vera, 0 altrimenti (== è un sinonimo per =). expr prova a forzare entrambi gli argomenti a numeri ed effettua un confronto numerico; se tale forzatura non riesce, fa un confronto lessicografico.

+  -
    Esegue operazioni aritmetiche. Entrambi gli argomenti sono forzati a numeri; se questo non può essere fatto viene generato un errore.

*  /  %
    Esegue operazioni aritmetiche (`%' è operazione di resto, come in C). Entrambi gli argomenti sono forzati a numeri; se questo non può essere fatto viene generato un errore.

:   Effettua un pattern matching. I suoi argomenti sono forzati a stringhe e il secondo è considerato essere un'espressione regolare, con un `^' implicitamente aggiunto al suo inizio. Del primo argomento ne è poi cercata una istanza in questa espressione regolare. Se la corrispondenza esiste e parte della stringa è racchiusa tra `\(' e `\)', quella parte è il valore dell'espressione :; altrimenti è ritornato un intero che è il numero di caratteri di cui è trovata la corrispondenza. Se la corrispondenza fallisce, l'operatore : restituisce una stringa nulla se sono usati `\(' e `\)', altrimenti 0. Può essere usata solo una coppia `\(' e `\)'.

Sono riconosciute, inoltre, le seguenti parole chiave:

match stringa espr_reg
    Un modo alternativo di fare il pattern matching. È uguale a ``stringa : espr_reg''.

substr stringa posizione lunghezza
    Restituisce la sottostringa di stringa che inizia a posizione e lunga al più lunghezza. Se posizione o lunghezza sono negativi o non numerici ritorna una stringa nulla.

index stringa classe-caratteri
    Restituisce la prima posizione di stringa dove è stato trovato il primo carattere di classe-caratteri. Se nessun carattere di classe-caratteri è trovato in stringa, restituisce 0.

length stringa
    Restituisce la lunghezza di stringa.

Le parentesi sono usate per i raggruppamenti nel modo solito. Le parole chiave non possono essere usate come stringhe.

  OPZIONI
Quando GNU expr è chiamato con un solo argomento sono riconosciute le seguenti opzioni:

--help
    Mostra nello standard output un messaggio d'aiuto ed esce con successo.

--version
    Mostra nello standard output informazioni sulla versione ed esce con successo.

ESEMPI

Per aggiungere 1 alla variabile d'ambiente a:

    a=`expr $a + 1`

Il seguente esempio mostra un modo per stampare la parte non-directory del nome di file nella variabile a (il valore in a non serve contenga `/'):

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

Si noti che i metacaratteri shell sono racchiusi tra virgolette.

expr restituisce i seguenti stati d'uscita:

0 se l'espressione non è né null né 0,
1 se l'espressione è null o 0,
2 per espressioni non valide.