expr

Da Wikipedia, l'enciclopedia libera.

expr (abbreviazione dalla lingua inglese di Evalutate expression, elabora espressione) è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX, che consente di elaborare espressioni numeriche o testuali.

Sintassi[modifica | modifica wikitesto]

expr ESPRESSIONE
expr OPZIONI  

Espressioni[modifica | modifica wikitesto]

Ci sono differenti dipi di espressioni: di confronto, computazionali, testuali e di matching.

Le espressioni di confronto restituiscono valori booleani. Alcuni esempi:

$ expr 2 ">" 1
1

$expr 1 ">" 2
0

Le espressioni di confronto possono essere effettuate anche con stringhe:

$ expr "casa" "<=" "casale"
1

$ expr "casa" "!=" "casale"
1

Espressioni computazionali consentono di effettuare le comuni operazioni artimetiche (somma, sottrazione, divisione, moltiplicazione) e il resto della divisione intera. Alcuni esempi:

$  expr 44 "/" 11
4

$ expr 8 % 3
2

Espressioni su stringa riguardano alcune possibilità di ricerca, anche con espressioni regolari, o di manipolazione. Alcuni esempi:

$ expr "casale" : "casa"
4

$ expr substr "casale" 1 4
casa

Limitazioni[modifica | modifica wikitesto]

Negli shell script è spesso necessario un opportuno impiego di apici o doppi apici per evitare che i caratteri riservati usati nelle espressioni possano essere interpretati in modo erroneo. Nell'esempio che segue, uno scorretto utilizzo del maggiore comporta la creazione di un file con il nome del secondo parametro contenente il primo:

$ expr "casa" > "casale"
$ cat casale
casa

Una ulteriore rilevante limitazione è il mancato supporto di calcoli in floating point:

$ expr 2 "/" 3
0

Anche i parametri per espressioni computazionali possono essere solo numeri interi:

$ expr "2.4" + "3.1"
expr: argomento non intero

Alternative[modifica | modifica wikitesto]

Tra le più comuni alternativa a disposizione negli ambienti Unix-like sono utilizzabili sed e cut per manipolazione di stringhe, e bc per la computazione numerica.

Riferimenti esterni[modifica | modifica wikitesto]

Sicurezza informatica Portale Sicurezza informatica: accedi alle voci di Wikipedia che trattano di sicurezza informatica