Jak přidat výpočty do skriptu Bash
Ačkoli Bash je skriptovací jazyk, má skoro všechny schopnosti obecného programovacího jazyka. To zahrnuje aritmetické funkce. Existuje řada možností syntaxe, které můžete použít k vyvolání aritmetického hodnocení výrazu. Možná nejčtenější je příkaz let . Například
nechte "m = 4 * 1024"vypočítá 4 krát 1024 a přiřadí výsledek proměnné "m".
Výsledek můžete vytisknout přidáním příkazu echo :
nechte "m = 4 * 1024" echo $ mMůžete to vyzkoušet z příkazového řádku zadáním následujícího kódu:
let "m = 4 * 1024"; echo $ mMůžete také vytvořit soubor obsahující příkazy Bash, v takovém případě byste měli přidat řádek v horní části souboru, který určuje program, který má kód spouštět. Například:
#! / bin / bash nechte "m = 4 * 1024" echo $ mza předpokladu, že spustitelný soubor Bash je umístěn v / bin / bash . Také je třeba nastavit oprávnění souboru skriptu tak, aby byla spustitelná. Za předpokladu, že název souboru skriptu je script1.sh , můžete nastavit oprávnění k vytvoření souboru příkazem:
chmod 777 script1.shPoté jej můžete provést příkazem:
./script1.shDostupné aritmetické operace jsou podobné jako ve standardních programovacích jazycích, jako je Java a C. Kromě násobení, jak je ilustrováno výše, použijete doplnění:
let "m = a + 7"nebo odčítání:
nechte "m = a - 7"nebo divize:
nechte "m = a / 2"nebo modulo (zbytek po celé divizi):
let "m = a% 100"Při použití operace na stejnou proměnnou, k níž je výsledek přiřazen, můžete použít standardní aritmetické operátory přiřazení zkratky, také nazývané operátory přiřazení kombinací. Například pro přidání máme:
let "m + = 15"což odpovídá "m = m + 15". Pro odečtení máme:
let "m - = 3"což odpovídá "m = m - 3". Pro rozdělení máme:
let "m / = 5"což odpovídá "m = m / 5". A pro modulo máme:
nechte "m% = 10"což odpovídá "m = m% 10".
Navíc můžete použít přírůstkové a dekrementační operátory:
let "m ++"je ekvivalentní k "m = m + 1". A
nechte "m--"je ekvivalentní k "m = m - 1".
A pak je ternární operátor "otazník-dvojtečka", který vrací jednu z dvou hodnot v závislosti na tom, zda je daná podmínka pravdivá nebo nepravdivá. Například
let "k = (m <9)? 0: 1"Pravá strana tohoto příkazu přiřazení hodnotí hodnotu "0", pokud je proměnná "m" menší než 9. V opačném případě se vyhodnotí na hodnotu 1. To znamená, že proměnná "k" je přiřazena "0", pokud je "m" než 9 a "1" jinak.
Obecná forma operátora otazníků a kolon je:
podmínka? hodnota-if-true: hodnota-if-falsePlovoucí aritmetický bod v Bash
Operátor let pracuje pouze pro celočíselnou aritmetiku. Pro aritmetiku s plovoucí čárou můžete použít například kalkulačku GNU bc, jak je ilustrováno v tomto příkladu:
echo "32,0 + 1,4" | před naším letopočtemOperátor "potrubí" | "" předává aritmetický výraz "32.0 + 1.4" do kalkulačky bc, která vrací skutečné číslo. Příkaz echo vytiskne výsledek na standardní výstup.
Alternativní syntaxe pro aritmetiku
Základy (zadní jednoduché uvozovky) lze použít k vyhodnocení aritmetického výrazu jako v tomto příkladu:
echo `expr $ m + 18`Přidá se 18 na hodnotu proměnné "m" a vytiskněte výsledek.
Chcete-li přiřadit hodnotu výpočtu proměnné, můžete použít rovnítko bez mezery kolem ní:
m = "expr $ m + 18"Dalším způsobem, jak vyhodnotit aritmetické výrazy, je použít dvojité závorky. Například:
((m * = 4))Tím se čtyřnásobek hodnoty proměnné "m".
Kromě aritmetického vyhodnocení poskytuje shell Bash také další programové konstrukty, jako jsou smyčky pro smyčky , smyčky , podmnožiny , funkce a podprogramy .