Comando Espr e calc: Risolvi espressioni matematiche nel terminale

Sono uno di quelli che programmano sempre script bash per risolvere le situazioni quotidiane (decifrare la password AP / router, automatizzare i processi, ecc.).

In certe occasioni ho visto la necessità di assegnare il valore di qualche espressione matematica a una variabile, o semplicemente lavorare con espressioni matematiche, lì mi trovo con il problema che bash e le espressioni matematiche, i calcoli non sono molto amichevoli. Succede che bash non è come Python, cosa possiamo dire variabile = 1 + 5/6 (ad esempio), in Bash dobbiamo usare il comando espr o Tracciato

Comando Espr

In altre parole, il comando expr ci aiuta a risolvere espressioni matematiche nel terminale, con esso possiamo calcolare ciò di cui abbiamo bisogno. Ad esempio, se vogliamo che appaia il risultato di 1 + 2 * 8/3, inseriamo nel terminale:

expr 1 + 2 \* 8 / 3

Nota che prima dell'asterisco * metto la barra rovesciata - »\ ... è necessario, poiché expr non interpreta l'asterisco come un simbolo di moltiplicazione a meno che il \

E il risultato apparirà sullo schermo. Ecco uno screenshot con alcuni esempi:

screenshot_espr1

Come puoi vedere nei calcoli finali (14/4 e 13/4), 14 diviso 4 è effettivamente 3.5 e 13 diviso 4 è effettivamente 3.25, quindi come è possibile che ci mostri 3 in entrambi i casi? Quello che succede è che il comando expr non ci mostra i decimali, cioè quello che segue dopo la virgola, non lo mostra, ci mostra solo il numero intero.

Nel caso in cui vogliamo assegnare a una variabile il risultato di un'espressione matematica (Es: 10/2), sarebbe così:

variable=`expr 10 / 2`

Quindi lo controlliamo con:

echo $variable

È importante che ci sia uno spazio tra ogni carattere, cioè uno spazio tra ogni numero, ogni simbolo di addizione, sottrazione, moltiplicazione o divisione

Comando Calc

Questo, a differenza del precedente, è esatto in termini di decimali, esempio:

calc 15 / 4

Ci mostrerebbe: 3.75

Ecco uno screenshot con diversi esempi:

screenshot_calc

A differenza di expr, quando usiamo calc è meglio che NON ci sia spazio tra ogni carattere, cioè che non ci siano spazi tra numeri e simboli, proprio come vedi nell'immagine precedente. Né hanno bisogno di anteporre una \ prima di *

Bene, questo è fondamentalmente ciò di cui volevo parlarti.

Tuttavia, ci sono ancora alcuni altri suggerimenti interessanti per ogni comando (soprattutto calc), ti consiglio di leggere il manuale:

man calc

man expr

saluti


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   vivace suddetto

    Molto utile, anche se sicuramente non sarebbe buono usare Bash per i calcoli matematici, i decimali contano :)

    1.    Wada suddetto

      Signor elav, abbiamo ancora la calcolatrice bash 🙂 possiamo usare l'argomento -l per usare la libreria matematica standard
      qualcosa del genere

      $ echo "(4/8)+(6/9)" | bc -l
      1.166666666666666666666666

      ha

      1.    vivace suddetto

        😀

      2.    eliotime3000 suddetto

        Eccellente. In questo modo evito il fastidio di installare XCalc quando uso X11 puro.

      3.    KZKG ^ Gaara suddetto

        Oh, questo non lo conoscevo, fantastico !!

  2.   clow_eriol suddetto

    Grazie, è abbastanza utile 😉

    1.    KZKG ^ Gaara suddetto

      Grazie ^ _ ^

  3.   notturno suddetto

    Grazie. Il calcolatore di sistema è stato un concorrente per le operazioni di base.

    1.    KZKG ^ Gaara suddetto

      Grazie a te per averci letto 🙂

  4.   Joaquin suddetto

    Bel consiglio!

  5.   Pedro lala suddetto

    No me gusto