Bash Range: Jak iterovat přes sekvence generované na shellu

Bash Range How Iterate Over Sequences Generated Shell

Sekvenci čísel v bash můžete iterovat dvěma způsoby. Jedním je použití následující příkaz a další je zadáním rozsahu ve smyčce for. v následující sekvence začíná od jednoho, počet se v každém kroku zvyšuje o jeden a ve výchozím nastavení vytiskne každé číslo v každém řádku až k horní hranici. Pokud číslo začíná od horní hranice, pak se v každém kroku snižuje o jednu. Normálně jsou všechna čísla interpretována jako plovoucí desetinná čárka, ale pokud sekvence začíná od celého čísla, vytiskne se seznam desetinných celých čísel. Pokud se příkaz seq může úspěšně spustit, pak vrátí 0, jinak vrátí jakékoli nenulové číslo. Sekvenci čísel můžete také iterovat pomocí smyčky for s rozsahem. Oba následující příkaz a pro smyčku s rozsahem jsou ukázány v tomto kurzu pomocí příkladů.

Možnosti příkazu seq:

Můžeš použít následující pomocí následujících možností.



-v

Tato možnost se používá k vložení čísel s úvodními nulami k vytištění všech čísel se stejnou šířkou.



-f formát

Tato možnost se používá k tisku čísel v určitém formátu. Plovoucí číslo lze formátovat pomocí %f, %g a %e jako konverzních znaků. Jako výchozí je použit %g.



-s řetězec

Tato možnost slouží k oddělení čísel řetězcem. Výchozí hodnota je nový řádek („ n“).

Příklady příkazu seq:

Příkaz seq můžete použít třemi způsoby. Můžete použít pouze horní limit nebo horní a dolní limit nebo horní a dolní limit s přírůstkem nebo snížením hodnoty každého kroku. Různá použití příkazu seq s možnostmi jsou uvedena v následujících příkladech.

Příklad-1: seq příkaz bez možnosti

Pokud je použit pouze horní limit, pak číslo začne od 1 a v každém kroku se zvyšuje o jeden. Následující příkaz vytiskne číslo od 1 do 4.



$následující 4

Výstup:

Pokud jsou tyto dvě hodnoty použity s příkazem seq, pak bude první hodnota použita jako počáteční číslo a druhá hodnota bude použita jako koncové číslo. Následující příkaz vytiskne číslo od 7 do 15.

$následující 7 patnáct

Výstup:

Když použijete tři hodnoty s příkazem seq, pak bude druhá hodnota použita jako hodnota přírůstku nebo úbytku pro každý krok. U následujícího příkazu je počáteční číslo 10, koncové číslo 1 a každý krok se bude počítat snížením 2.

$následující 10 -2 1

Výstup:

Příklad-2: seq s volbou –w

Následující příkaz vytiskne výstup přidáním úvodní nuly pro číslo od 1 do 9.

$následující -v0110

Výstup:

Příklad-3: seq s volbou –s

Následující příkaz používá - jako oddělovač pro každé pořadové číslo. Pořadí čísel se vytiskne přidáním - jako oddělovač.

$následující -s-8

Výstup:

Příklad -4: seq s volbou -f

Následující příkaz vytiskne 10 hodnot data počínaje od 1. Zde se k přidání pořadového čísla s jinou hodnotou řetězce použije možnost %g.

$následující -F '%g/04/2018' 10

výstup:

Bash Range

Následující příkaz slouží ke generování sekvence čísla s plovoucí desetinnou čárkou pomocí %f. Zde bude číslo začínat od 3 a zvyšovat o 0,8 v každém kroku a poslední číslo bude menší nebo rovné 6.

$následující -F '%F' 3 0,8 6

Výstup:

Příklad-5: Napište sekvenci do souboru

Pokud chcete uložit sekvenci čísel do souboru bez tisku v konzole, můžete použít následující příkazy. První příkaz vytiskne čísla do souboru s názvem seq.txt . Číslo se bude generovat od 5 do 20 a v každém kroku se zvýší o 10. Druhý příkaz slouží k zobrazení obsahu seq.txt soubor.

násl. $ 5 10 20 | kočka> seq.txt
$ cat seq.txt

Výstup:

Příklad-6: Použití smyčky seq in for

Předpokládejme, že chcete vytvářet soubory s názvem fn1 až fn10 pomocí smyčky for se seq. Vytvořte soubor s názvem sq1.bash a přidejte následující kód. For loop bude 10krát iterovat pomocí příkazu seq a vytvoří 10 souborů v pořadí fn1, fn2, fn3… ..fn10.

#!/bin/bash
prov ``následující 10``
dělat
dotekfn.$ i
Hotovo

Výstup:

Spuštěním následujících příkazů spustíte kód souboru bash a zkontrolujte, zda jsou soubory vytvořeny nebo ne.

$bashsq1.bash
$ls

Příklady smyčky for s rozsahem:

Příklad-7: Pro smyčku s rozsahem

Alternativou příkazu seq je range. K vytvoření sekvence čísel, jako jsou následující, můžete použít smyčku in for. Napište následující kód do souboru bash s názvem sq2.bash . Smyčka se bude 5krát opakovat a v každém kroku vytiskne druhou odmocninu každého čísla.

#!/bin/bash
pronv {1..5}
dělat
((výsledek= n*n))
vyhodil $ n náměstí=$ výsledek
Hotovo

Výstup:

Spuštěním příkazu spustíte skript souboru.

$bashsq2.bash

Příklad-8: Pro smyčku s rozsahem a přírůstkovou hodnotou

Ve výchozím nastavení se číslo v každém kroku zvyšuje o jeden v rozsahu jako následující. Můžete také změnit hodnotu přírůstku v rozsahu. Napište následující kód do souboru bash s názvem sq3.bash . Smyčka for ve skriptu se bude opakovat 5krát, každý krok se zvýší o 2 a vytiskne všechna lichá čísla mezi 1 až 10.

#!/bin/bash
vyhodil „všechna lichá čísla od 1 do 10 jsou“
prov {1..10..2}
dělat
vyhodil $ i;
Hotovo

Výstup:

Spuštěním příkazu spustíte skript souboru.

$bashsq3.bash

Pokud chcete pracovat s posloupností čísel, můžete použít kteroukoli z možností uvedených v tomto kurzu. Po dokončení tohoto tutoriálu budete moci ve skriptu bash efektivněji používat příkaz seq a for loop with range.