GNU/Linux >> Znalost Linux >  >> Linux

Bash sekvenční výraz (rozsah)

V tomto článku se budeme zabývat základy sekvenčního výrazu v Bash.

Výraz sekvence Bash generuje rozsah celých čísel nebo znaků definováním začátku a konce rozsahu. Obecně se používá v kombinaci s for smyčky.

Výraz sekvence Bash #

Výraz sekvence má následující tvar:

{START..END[..INCREMENT]}
  • Výraz začíná otevírací složenou závorkou a končí zavírací složenou závorkou.
  • START a END mohou být kladná celá čísla nebo jednotlivé znaky.
  • START a END hodnoty jsou povinné a oddělené dvěma tečkami .. bez mezery mezi nimi.
  • INCREMENT hodnota je volitelná. Pokud je přítomen, musí být oddělen od END hodnotu se dvěma tečkami .. bez mezery mezi nimi. Když jsou uvedeny znaky, výraz je rozšířen v lexikografickém pořadí.
  • Výraz se rozšíří na každé číslo nebo znaky mezi START a END včetně poskytnutých hodnot.
  • Nesprávně vytvořený výraz zůstane nezměněn.

Zde je výraz v akci:

echo {0..3}

Když žádný INCREMENT za předpokladu, že výchozí přírůstek je 1:

0 1 2 3

Můžete použít i jiné postavy. Níže uvedený příklad vytiskne abecedu:

echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

Pokud START hodnota je větší než END pak výraz vytvoří rozsah, který se sníží:

for i in {3..0}
do
  echo "Number: $i"
done
Number: 3
Number: 2
Number: 1
Number: 0

Při INCREMENT je uveden, používá se jako krok mezi každou vygenerovanou položkou:

for i in {0..20..5}
do
  echo "Number: $i"
done

Každé vygenerované číslo je o 5 větší než předchozí číslo:

Number: 0
Number: 5
Number: 10
Number: 15
Number: 20

Při použití celých čísel ke generování rozsahu můžete přidat úvodní 0 vynutit, aby každé číslo mělo stejnou délku. Chcete-li vyplnit vygenerovaná celá čísla úvodními nulami, buď START a END s nulou:

for i in {00..3}
do
  echo "Number: $i"
done
Number: 00
Number: 01
Number: 02
Number: 03

Výraz může mít předponu nebo příponu s jinými znaky:

echo A{00..3}B
A00B A01B A02B A03B

Pokud výraz není sestaven správně, zůstane nezměněn:

echo {0..}
0..

Závěr č.

Výraz sekvence Bash vám umožňuje generovat řadu celých čísel nebo znaků.

Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.


Linux
  1. Zvýšit číslo sestavení v Bash?

  2. Bash + Ověřit název regulárním výrazem?

  3. Zaokrouhlete dělené číslo v bash

  1. Získejte stropní celé číslo z čísla v linuxu (BASH)

  2. Náhodné číslo mezi rozsahem v shellu

  3. Linux Bash Shell – soubor globbing specifický rozsah?

  1. Chyba skriptu Bash:Očekává se celočíselný výraz?

  2. Jak číst řetězec jako hexadecimální číslo v Bash?

  3. číselný rozsah extraktu grep