expr - expr
| Autori originali | Dick Haight ( AT&T Bell Laboratories ) |
|---|---|
| Sviluppatore / i | Varie open-source e commerciali sviluppatori |
| Versione iniziale | 1979 |
| Sistema operativo | Unix , simile a Unix , IBM i |
| piattaforma | Cross-platform |
| genere | Comando |
expr è una linea di comando utilità su Unix e Unix-like sistemi operativi che valuta un'espressione ed emette il valore corrispondente. È apparso per la prima volta in Unix v7 . Anche il comando expr è stato portato sul sistema operativo IBM i .
Panoramica
expr valuta espressioni di tipo intero o stringa , comprese le espressioni regolari di corrispondenza dei modelli . Ciascun simbolo (operatore, valore, ecc.) Nell'espressione deve essere fornito come parametro separato. La maggior parte della sfida posta nella scrittura di espressioni è impedire che la shell della riga di comando invocata agisca sui caratteri destinati all'elaborazione di expr .
Sintassi
Sintassi: espressione expr
Gli operatori disponibili
- per interi: addizione, sottrazione, moltiplicazione, divisione e modulo
- per le stringhe: corrisponde a un'espressione regolare; in alcune versioni: trova un insieme di caratteri in una stringa ("index"), trova sottostringa ("substr"), lunghezza della stringa ("length")
- per entrambi: confronto (uguale, non uguale, minore di, ecc.)
Esempio
Il seguente è un esempio (non conforme a POSIX ) che coinvolge espressioni booleane :
expr length "abcdef" "<" 5 "|" 15 - 4 ">" 8
Questo esempio restituisce "1". Questo perché la lunghezza "abcdef" è 6, che non è inferiore a 5 (quindi il lato sinistro di | restituisce zero). Ma 15 meno 4 fa 11 ed è maggiore di 8, quindi il lato destro è vero, il che rende o vero, quindi 1 è il risultato. Lo stato di uscita del programma è zero per questo esempio.
Per pura aritmetica, è spesso più conveniente usare bc . Per esempio:
echo "3 * 4 + 14 / 2" | bc
poiché accetta l'espressione come un singolo argomento.
Per la programmazione della shell portatile , deve essere evitato l'uso dei comandi "index", "length", "match" e "substr"; la corrispondenza delle stringhe rimane possibile ma deve utilizzare la sintassi "string: regexp".
Guarda anche
Riferimenti
link esterno
- : valuta gli argomenti come un'espressione - Comandi e utilità di riferimento, La specifica UNIX singola , Edizione 7 da The Open Group
- invocazione di expr nel manuale GNU coreutils