GNU/Linux >> Linux の 問題 >  >> Linux

Bashシーケンス式(範囲)

この記事では、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シーケンス式を使用すると、整数または文字の範囲を生成できます。

ご質問やご意見がございましたら、お気軽にコメントをお寄せください。


Linux
  1. Bashスクリプトエラー:整数式が必要ですか?

  2. Bashで文字列を16進数として読み取る方法は?

  3. シェル内の範囲間の乱数

  1. Bashでビルド番号を増やしますか?

  2. Bash +正規表現で名前を確認しますか?

  3. grep 抽出番号範囲

  1. Bash:置換の正規表現?

  2. 6 Bash 条件式の例 ( -e, -eq, -z, !=, [, [[ ..)

  3. Bashで変数が数値かどうかをテストするにはどうすればよいですか?