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.
STARTaENDmohou být kladná celá čísla nebo jednotlivé znaky.STARTaENDhodnoty jsou povinné a oddělené dvěma tečkami..bez mezery mezi nimi.INCREMENThodnota je volitelná. Pokud je přítomen, musí být oddělen odENDhodnotu 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
STARTaENDvč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ář.