Introduzione
Bash let
è un comando integrato nei sistemi Linux utilizzato per valutare le espressioni aritmetiche. A differenza di altri comandi di valutazione e espansione aritmetica, let
è un semplice comando con il proprio ambiente. Il let
il comando consente anche l'espansione aritmetica.
In questo tutorial, esamineremo la sintassi del comando let, le opzioni e gli esempi di utilizzo.
Prerequisiti
- Un sistema che esegue una distribuzione Linux
- Accesso alla finestra del terminale o alla riga di comando
Sintassi dell'istruzione Bash let
Il let
comando utilizza la seguente sintassi di base:
let [expression]
Nella sintassi sopra, expression
è un'espressione aritmetica che vuoi che il let
comando per valutare. let
funziona solo con espressioni che contengono numeri interi. Il comando non supporta i numeri a virgola mobile .
Il let
Il comando consente agli utenti di valutare più di un'espressione contemporaneamente. In questo caso, la sintassi è:
let [expression 1] [expression 2] … [expression 3]
lascia che Operatori aritmetici
Il Bash let
comando è in grado di valutare le espressioni che contengono gli operatori aritmetici dalla tabella seguente. Le voci sono elencate in ordine decrescente di precedenza, con gli operatori della stessa precedenza elencati nella stessa riga:
Operatore | Descrizione |
var++ var-- | Post-incremento (++): Interpreta il valore di una variabile e aggiungi 1 ad essa. Post-decremento (--): Interpreta il valore di una variabile e sottrai 1 da essa. |
++var --var | Pre-incremento (++): Aggiungi 1 al valore di una variabile e quindi interpreta il valore. Pre-decremento (--): Sottrarre 1 dal valore di una variabile e quindi interpretare il valore. |
-expr +expr | meno unario: Restituisce il valore dell'espressione moltiplicato per -1. Unario più: Restituisce il valore dell'espressione invariato (moltiplicato per 1). |
! ~ | Negazione logica: Restituisce false se l'operando è vero e vero se l'operando è falso. Negazione bit a bit: Capovolgi i bit nella rappresentazione binaria di un numero. |
** | Esponenziale: Eleva un numero intero alla potenza di un altro. |
* / % | Operatori aritmetici di base: Moltiplicazione. Divisione. Resto (modulo). |
+ - | Operatori aritmetici di base: Aggiunta. Sottrazione. |
<< >> | Sposta bit a sinistra. Sposta a destra bit a bit. |
<= >= < > | Confronto dei valori: Minore o uguale a. Maggiore o uguale a. Meno di. Maggiore di. |
== != | Uguaglianza: Restituisce true se gli operandi sono uguali. Disuguaglianza: Restituisce false se gli operandi sono uguali. |
& | A bit E: Moltiplica le cifre corrispondenti di due valori binari. |
^ | XOR bit a bit: Confronta le cifre corrispondenti di due valori binari e restituisce 1 se le cifre differiscono. |
| | A bit OPPURE: Confronta le cifre corrispondenti di due valori binari e restituisce 1 se una delle cifre è 1. |
&& | Logico E: Restituisce true se entrambi gli operandi sono veri. |
|| | OR logico: Restituisce true se uno degli operandi è true. |
expr1 ? expr2 : expr3 | Operatore condizionale: Se espr1 è vero, restituisce espr2 . Se espr1 è falso, restituisce espr3 . |
=, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |= | Compito: Assegna un valore a una variabile. |
Esempi di bash let
Il let
Il comando consente di assegnare valori alle variabili ed eseguire operazioni aritmetiche, bit per bit e logiche. Leggi le sezioni seguenti per esempi.
Assegnazione di un valore a una variabile
Usa il let
comando per assegnare un valore a una variabile con:
let "[variable] = [value]"
Ad esempio, assegna il valore 5 alla variabile var1 e stampa il valore come output:
let "var1 = 5"; echo $var1
Allo stesso modo, dopo aver impostato un valore variabile, il let
Il comando consente di assegnare lo stesso valore a un'altra variabile:
let "var1 = 5" "var2=var1"; echo $var2
Esecuzione di operazioni aritmetiche di base
Dopo aver impostato i valori delle variabili, utilizza il let
comando per eseguire operazioni aritmetiche di base. Ad esempio, imposta var1 come 6 e var2 come 2 ed eseguire addizioni, sottrazioni, moltiplicazioni, divisioni e moduli:
let "var1 = 6" "var2 = 2" "var3=var1+var2"; echo $var3
let "var1 = 6" "var2 = 2" "var3=var1-var2"; echo $var3
let "var1 = 6" "var2 = 2" "var3=var1*var2"; echo $var3
let "var1 = 6" "var2 = 2" "var3=var1/var2"; echo $var3
let "var1 = 6" "var2 = 2" "var3=var1%var2"; echo $var3
In questo esempio, il let
comando imposta il valore di var3 come risultato dell'operazione aritmetica e stampa il risultato.
Esecuzione dell'esponenziazione
Il let
il comando richiede due valori interi per eseguire la esponenziazione . Il primo valore (base
) viene elevato alla potenza del secondo valore (power
):
let "[base] ** [power]"
Ad esempio, per aumentare il valore base di 3 alla potenza di 2 e stampare il risultato, utilizzare questo comando:
let "var1 = 3 ** 2"; echo $var1
Esecuzione di operazioni unarie
Utilizza un meno unario con il let
comando per cambiare un'espressione da positiva a negativa e viceversa:
let "var1 = 2 + 3" "var1=-var1"; echo $var1
Il più unario moltiplica l'espressione per 1 e restituisce un valore invariato:
let "var1 = 2 + 3" "var1=+var1"; echo $var1
Modifica incrementale del valore della variabile
Utilizzando il post-incremento o post-decremento operatori interpreta il valore della variabile e quindi lo aumenta o diminuisce di 1:
let "var1 = 10" "var2=var1++"; echo $var1 $var2
Nell'esempio sopra, la variabile var2 ottiene il valore di var1 (10) prima che venga aumentato di 1. Lo stesso accade quando si esegue un post-decremento:
let "var1 = 10" "var2=var1--"; echo $var1 $var2
Esecuzione di un pre-incremento aumenta il valore di var1 per 1 (11), quindi assegna il nuovo valore a var2 :
let "var1 = 10" "var2=++var1"; echo $var1 $var2
Esecuzione di un pre-decremento fa lo stesso. Tuttavia, questa volta diminuisce il valore di var1 per 1 (9):
let "var1 = 10" "var2=--var1"; echo $var1 $var2
Esecuzione di spostamenti di bit
Esecuzione di spostamenti di bit utilizzando il let
comando sposta l'ordine delle cifre in un numero binario a sinistra oa destra. Ad esempio, eseguendo uno spostamento del bit a sinistra del numero 8 due volte lo si moltiplica per due due volte:
let "var1 = 8 << 2"; echo $var1
Al contrario, l'esecuzione di uno spostamento del bit a destra due volte divide il valore per 2 due volte:
let "var1 = 8 >> 2"; echo $var1
Esecuzione di operazioni bit per bit
Una negazione bit a bit inverte ogni cifra di un numero binario. Questa operazione cambia 1 in 0 e viceversa:
let "var1 = 5" "var2=~var1"; echo $var2
Nell'esempio sopra, il comando let converte il valore di 5 in un intero con segno a 32 bit (000000000000000000000000000000101) e inverte le cifre. Questa operazione risulta in -6 (111111111111111111111111111111111111010).
Un AND bit a bit converte una coppia di valori in interi con segno a 32 bit e confronta le cifre in ordine. L'azione restituisce 1 se entrambe le cifre sono 1, oppure restituisce 0:
let "var1 = 5" "var2 = 10" "var3 = var1&var2"; echo $var3
L' OR bit per bit l'operatore confronta le cifre corrispondenti di due valori e restituisce 1. Ma almeno uno dei bit deve essere 1:
let "var1 = 5" "var2 = 10" "var3 = var1|var2"; echo $var3
Il XOR bit a bit l'operatore confronta le cifre corrispondenti di due valori e restituisce 0 se le cifre corrispondono. In caso contrario, l'operatore restituisce 1:
let "var1 = 5" "var2 = 10" "var3 = var1^var2"; echo $var3