それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

bash で指定回数ループする方法いろいろ for / while など

bash で指定回数ループする方法のあれこれまとめ

bash で使える方法です。sh では使えません。

while で10回ループ

bash 算術演算のカッコと組み合わせて強いです。

#!/usr/bin/env bash 


while (( cnt++ < 10  )); do

  echo $cnt
done

break も使えます。

break の導入の if 分も比較演算子を (()) で使えます。

#!/usr/bin/env bash 

while (( cnt++ < 10  )); do

  echo $cnt
  if (( cnt > 5 )) ;then 
    break
  fi
done

for で 10 回ループーC言語スタイル

bash には (()) と for を組み合わせ使えるものがあります。

注意 for 中は$i++ でなく、i++ のようになる

#!/usr/bin/env bash 

for (( i=0; i< 10 ; i++ )); do 
  echo $i
done

for もbreak が使えます。

for で 10回ループ - 展開

JavaScriptなどでおなじみの for .. in ループ

for i in {0...9}; do 
  echo $i

  if (( i > 5 )) ;then 
    break
  fi
done

seq コマンドを使う。

seq コマンドを使う事もできます。

for i in `seq 0 9` ; do 
 echo $i;
done

配列を使って10回ループ

ARR=`seq -s ' ' 0 9 `

for i in $ARR ; do 
  echo $i
done

C言語スタイル

通常のプログラミング言語と同じ for も使える。

for (( idx=0 ; idx<10; idx++  )) ; do
  echo $idx;
done

配列と組み合わせてループ

配列の添字にアクセスする(多分あんまり使わない。)

## 配列を作る
ARR=(`seq -s ' ' 1000 1009 `)
echo $ARR
echo ${ARR[2]}

## 配列にアクセス
for (( i = 0; i < ${#ARR[*]}; i++ ))  ; do 
  echo "$i => ${ARR[$i]}"
done

配列の配列を作ることがあれば使えるけど、現代では配列の配列をするくらいなら、名前付きインデックスを使うほうが手っ取り早い気がする。

まとめ

自分でも時々忘れそうになります。再度まとめ直し。

指定回数トライして、成功したら抜ける。みたいなことを書こうとして詰まった

過去記事

bashの似てて紛らわしいもの (( / $(( の丸括弧 - それマグで!

bashで10回ループ(Bashによる指定回ループとファイル名を001にする) - それマグで!

bashでC言語スタイルforループ - それマグで!

bashの似てて紛らわしいもの (( / $(( の丸括弧 - それマグで!

bashで連想配列(assoc array / hash ) を使う。 - それマグで!

bashの配列のまとめ(定義・代入・参照と取得・ループ) - それマグで!

** 2022/10/03

for (( i=0; i<0; i++ )) を追加。