
この記事では、Bashでのシーケンス式の基本について説明します。
Bashシーケンス式は、範囲の開始点と終了点を定義することにより、整数または文字の範囲を生成します。通常、for
と組み合わせて使用されます ループします。
Bashシーケンス式#
シーケンス式は次の形式を取ります:
{START..END[..INCREMENT]}
- 式は開始中括弧で始まり、終了中括弧で終わります。
-
START
およびEND
正の整数または単一文字のいずれかです。 -
START
およびEND
値は必須であり、2つのドットで区切られます..
、間にスペースはありません。 -
INCREMENT
値はオプションです。存在する場合は、END
から分離する必要があります 2つのドットを含む値..
、それらの間にスペースはありません。文字を指定すると、式は辞書式順序で展開されます。 - 式は、
START
の間の各数字または文字に展開されます およびEND
、提供された値を含みます。 - 誤って形成された式は変更されません。
動作中の式は次のとおりです。
echo {0..3}
INCREMENT
がない場合 デフォルトの増分は1です。
0 1 2 3
他の文字を使用することもできます。以下の例はアルファベットを印刷します:
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
START
の場合 値がEND
より大きい 次に、式は減少する範囲を作成します:
for i in {3..0}
do
echo "Number: $i"
done
Number: 3
Number: 2
Number: 1
Number: 0
INCREMENT
の場合 が与えられると、生成された各アイテム間のステップとして使用されます:
for i in {0..20..5}
do
echo "Number: $i"
done
生成された各数値は、前の数値より5だけ大きくなります:
Number: 0
Number: 5
Number: 10
Number: 15
Number: 20
整数を使用して範囲を生成する場合、先頭に0
を追加できます 各数値を強制的に同じ長さにします。生成された整数を先行ゼロで埋めるには、START
のいずれかのプレフィックスを付けます。 およびEND
ゼロの場合:
for i in {00..3}
do
echo "Number: $i"
done
Number: 00
Number: 01
Number: 02
Number: 03
式には、他の文字の接頭辞または接尾辞を付けることができます:
echo A{00..3}B
A00B A01B A02B A03B
式が正しく構成されていない場合は、変更されません。
echo {0..}
0..
結論#
Bashシーケンス式を使用すると、整数または文字の範囲を生成できます。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。