【初心者向け】シェルスクリプトforの使い方(各種サンプル付き)

シェルスクリプトのfor
  • このエントリーをはてなブックマークに追加
  • Pocket

forはifと並んでプログラミングでなくてはならない文法だ。

シェルスクリプトにも当然用意されていて、繰り返し何かを行うときに使われる。

このページではシェルスクリプトでのforの書き方についてお伝えした。いろいろなパターンをご紹介したので、押さえておくと必ず役に立つだろう。

forとは

プログラミングを触ったことがある人はご存知の通り、「for」は「繰り返し」の制御文だ。

例えば、残金が100円以下になるまでおでんを買い続けるというプログラミングは下記のようになるが、これもforで作成することができる。

フローチャート08

シェルスクリプトでのforは、C言語やJavaとくらべると少々勝手が違うように思える。Javaなどのfor文は「ループカウンタ」を用意しカウンタの数だけ繰り返しすることが殆どだろう。しかしbashの場合は「ワードリスト」を使って繰り返しをするという違いがある。

実際Javaなどのfor文のような記述も出来るようになっているが、ワードリストをつかうほうがbashでは一般的だ。

ワードリストの数だけ繰り返し処理がおこなわれることになるというのは、少々イメージしにくいかもしれない、そこは、後ほどサンプルコードをみれば、捕まえるはずだ。

シェルスクリプトでのforは、比較的繰り返し条件が単純な場合に利用される。複雑な条件式が必要な場合別途紹介する「while」を使用するのが一般的だろう。

スクリプトにおいて繰り返し処理は「単調な繰り返し作業を自動化」するのに重要な役割をはたすので積極的に活用しよう。

書式について

一般的な書式

for 変数 in リスト
do
処理...
done

リストの個数だけ処理が実行されるという書式になる。

もしくはC言語やJava風の記述が可能(bashの場合のみ)

C言語やJavaなど一般的なプログラミング言語のような記述も可能だ。

10回testを表示する場合の例

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

「()」が二重になるところとセミコロンに気をつけてほしい

シェルスクリプトforのサンプルコード

それでは実際のコードを見ていこう。まずはシンプルな例を確認する。

vi for-ex1.sh

実行結果

for example01

このように$iに順番にリストが代入されて、表示されることになる。

もう少し実践的なfor文

seqを使う

seqは連続した数字を出力するコマンドだ。こうした一見不思議なコマンドは、スクリプト記述の時に役に立つように作られていることが多い。

例えば、

$ seq 10

とすると1から10までの数字が表示される。

これを利用すると以下のようにforを記述することが出来る

vi for-ex2.sh

実行結果

for example02

必ずリストの中身を使わなければならないというわけではない

また実際にリストの数だけ繰り返しがおこなわれるが、かならずしもリストの内容を使用しなければならないというわけではない。

vi for-ex3.sh

実行結果

for example03

繰り返しを利用しバックアップをとる場合など

vi for-ex4.sh

実行結果

for example04

シェル上にて一行で繰り返しを行う。

$ for var in seq 10; do touch testfile"$var".txt; done

実行結果

連番のファイルなどをパッと作りたいしかし、スクリプトを書くほど大規模ではないなど、そういうときはコマンドプロンプトから直接for文を呼び出すこともできる。

上の例を参照してほしい。セミコロンの位置に注意しよう。forの条件のあとdoの条件のあとにセミコロンが挿入される。この例ではtestfile1.txtからtestfile10.txtが作成される。

セミコロンがない場合、以下のような対話的な処理となる。

実行結果

testfile

まとめ

このページではシェルスクリプトのforについてまとめてご紹介した。

シェルスクリプトを使う上でなくてはならない文法だ。いろいろなパターンを上記で初回したが、いずれも押さえておこう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメントを残す

*