Úvod
Bash let
je vestavěný příkaz v systémech Linux používaný pro vyhodnocování aritmetických výrazů. Na rozdíl od jiných aritmetických vyhodnocovacích a rozšiřujících příkazů let
je jednoduchý příkaz s vlastním prostředím. let
příkaz také umožňuje aritmetické rozšíření.
V tomto tutoriálu si projdeme syntaxi příkazu let, možnosti a příklady použití.
Předpoklady
- Systém s distribucí Linuxu
- Přístup do okna terminálu nebo příkazového řádku
Syntaxe příkazu Bash let
let
používá následující základní syntaxi:
let [expression]
Ve výše uvedené syntaxi expression
je aritmetický výraz, který chcete let
příkaz vyhodnotit. let
funguje pouze s výrazy, které obsahují celá čísla. Příkaz nepodporuje číslice s plovoucí desetinnou čárkou .
let
umožňuje uživatelům vyhodnotit více než jeden výraz současně. V tomto případě je syntaxe:
let [expression 1] [expression 2] … [expression 3]
nechte aritmetické operátory
Bash let
příkaz je schopen vyhodnotit výrazy, které obsahují aritmetické operátory z níže uvedené tabulky. Položky jsou uvedeny v sestupném pořadí, přičemž operátory se stejnou prioritou jsou uvedeny na stejném řádku:
Operátor | Popis |
var++ var-- | Po zvýšení (++): Interpretujte hodnotu proměnné a přidejte k ní 1. Po snížení (--): Interpretujte hodnotu proměnné a odečtěte od ní 1. |
++var --var | Předběžné zvýšení (++): Přidejte 1 k hodnotě proměnné a potom interpretujte hodnotu. Před snížením (--): Odečtěte 1 od hodnoty proměnné a poté hodnotu interpretujte. |
-expr +expr | Unární mínus: Vrátí hodnotu výrazu vynásobenou -1. Unární plus: Vrátí nezměněnou hodnotu výrazu (vynásobenou 1). |
! ~ | Logická negace: Vraťte hodnotu false, pokud je operand pravdivý, a hodnotu true, pokud je operand nepravdivý. Bitová negace: Překlopte bity v binární reprezentaci čísla. |
** | Umocnění: Zvyšte jedno celé číslo na mocninu druhého. |
* / % | Základní aritmetické operátory: Násobení. Divize. Zbytek (modulo). |
+ - | Základní aritmetické operátory: Přidání. Odečítání. |
<< >> | Bitový posun doleva. Bitový posun doprava. |
<= >= < > | Porovnání hodnot: Menší nebo rovno. Větší než nebo rovno. Méně než. Větší než. |
== != | Rovnost: Vrátí hodnotu true, pokud jsou operandy stejné. Nerovnost: Vrátí false, pokud jsou operandy stejné. |
& | Bitové AND: Vynásobí odpovídající číslice dvou binárních hodnot. |
^ | Bitové XOR: Porovná odpovídající číslice dvou binárních hodnot a vrátí 1, pokud se číslice liší. |
| | Bitově NEBO: Porovná odpovídající číslice dvou binárních hodnot a vrátí 1, pokud je jedna z číslic 1. |
&& | Logické A: Vrátí hodnotu true, pokud jsou oba operandy pravdivé. |
|| | Logické NEBO: Vrátí hodnotu true, pokud je některý z operandů pravdivý. |
expr1 ? expr2 : expr3 | Podmíněný operátor: Pokud výraz1 je true, vraťte výraz2 . Pokud výraz1 je nepravda, vraťte výraz3 . |
=, *=, /=, %=, +=, -=, <<=, >>=, &=, ^=, |= | Zadání: Přiřaďte hodnotu proměnné. |
Příklady Bash let
let
umožňuje přiřadit hodnoty proměnným a provádět aritmetické, bitové a logické operace. Příklady si přečtěte v následujících částech.
Přiřazení hodnoty proměnné
Použijte let
příkaz k přiřazení hodnoty proměnné s:
let "[variable] = [value]"
Například přiřaďte hodnotu 5 proměnné var1 a vytiskněte hodnotu jako výstup:
let "var1 = 5"; echo $var1
Stejně tak po nastavení hodnoty proměnné let
příkaz umožňuje přiřadit stejnou hodnotu jiné proměnné:
let "var1 = 5" "var2=var1"; echo $var2
Provádění základních aritmetických operací
Po nastavení hodnot proměnných použijte let
příkaz k provádění základních aritmetických operací. Nastavte například var1 jako 6 a var2 jako 2 a proveďte sčítání, odčítání, násobení, dělení a modul:
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
V tomto příkladu let
příkaz nastaví hodnotu var3 jako výsledek aritmetické operace a vytiskne výsledek.
Provádění umocňování
let
příkaz vyžaduje k provedení umocnění dvě celočíselné hodnoty . První hodnota (base
) je umocněna druhou hodnotou (power
):
let "[base] ** [power]"
Chcete-li například zvýšit základní hodnotu 3 na mocninu 2 a vytisknout výsledek, použijte tento příkaz:
let "var1 = 3 ** 2"; echo $var1
Provádění unárních operací
Použijte unární mínus pomocí let
příkaz pro změnu výrazu z kladného na záporný a naopak:
let "var1 = 2 + 3" "var1=-var1"; echo $var1
Unární plus vynásobí výraz 1 a vrátí nezměněnou hodnotu:
let "var1 = 2 + 3" "var1=+var1"; echo $var1
Postupná změna hodnoty proměnné
Pomocí přírůstku nebo po snížení operátory interpretují hodnotu proměnné a poté ji zvýší nebo sníží o 1:
let "var1 = 10" "var2=var1++"; echo $var1 $var2
Ve výše uvedeném příkladu proměnná var2 získá hodnotu var1 (10) před zvýšením o 1. Totéž se stane při provádění dodatečného snížení:
let "var1 = 10" "var2=var1--"; echo $var1 $var2
Provedení předběžného zvýšení zvyšuje hodnotu var1 o 1 (11), poté přiřadí novou hodnotu var2 :
let "var1 = 10" "var2=++var1"; echo $var1 $var2
Provedení předběžného snížení dělá totéž. Tentokrát však snižuje hodnotu var1 o 1 (9):
let "var1 = 10" "var2=--var1"; echo $var1 $var2
Provádění bitových posunů
Provádění bitových posunů pomocí let
příkaz posune pořadí číslic v binárním čísle doleva nebo doprava. Například provedením levého bitového posunu čísla 8 dvakrát toto číslo vynásobíte dvakrát:
let "var1 = 8 << 2"; echo $var1
Naopak dvojitým provedením pravého bitového posunu se hodnota vydělí dvakrát 2:
let "var1 = 8 >> 2"; echo $var1
Provádění bitových operací
Bitová negace obrátí každou číslici binárního čísla. Tato operace změní 1 na 0 a naopak:
let "var1 = 5" "var2=~var1"; echo $var2
Ve výše uvedeném příkladu příkaz let převede hodnotu 5 na 32bitové celé číslo se znaménkem (000000000000000000000000000101) a obrátí číslice. Výsledkem této operace je -6 (1111111111111111111111111111010).
A bitové AND operátor převede pár hodnot na 32bitová celá čísla se znaménkem a porovná číslice v pořadí. Akce vrátí 1, pokud jsou obě číslice 1, jinak vrátí 0:
let "var1 = 5" "var2 = 10" "var3 = var1&var2"; echo $var3
bitové NEBO operátor porovná odpovídající číslice dvou hodnot a vrátí 1. Ale alespoň jeden z bitů musí být 1:
let "var1 = 5" "var2 = 10" "var3 = var1|var2"; echo $var3
Bitový XOR operátor porovná odpovídající číslice dvou hodnot a vrátí 0, pokud se číslice shodují. V opačném případě operátor vrátí 1:
let "var1 = 5" "var2 = 10" "var3 = var1^var2"; echo $var3