• ベストアンサー

ループ文のカウント

Linuxの初心者です。bash内の基本的なループ文で困っています。 データベースのバックアップを取る為に、 例えば"000001"から"000020"までの数字を文字列で 取りたいだけなのですが、6桁の0で埋める構文が分りません。 基本的な事ですみませんが、教えてください。 #!/bin/bash COUNT=000001 DBMAX=000020 while [ $COUNT -le $DBMAX ] do DBNAME="hoge"$COUNT セット文 count=`expr $COUNT + 1` done

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

bash が使えるのなら多分 seq も printf もあると思うので… #!/bin/bash COUNT=1 DBMAX=20 for i in `seq $COUNT $DBMAX` do DBNAME=`printf 'hoge%06d' $i` echo $DBNAME done

kebyi
質問者

お礼

早いご回答ありがとうございました。 文字列の取得に成功しました。

その他の回答 (1)

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.2

bashを使う方法はすでに出ていますが、他にawkを使う方法も見通しが良く応用が効きます。 #!/bin/bash awk </dev/null ' BEGIN { for (i=1;i <=20;i++) { printf ("echo hoge%06d\n", i); } }' | bash

kebyi
質問者

お礼

とても勉強になります。 誠にありがとうございました。

関連するQ&A