前置き
シェルスクリプトの学習中。本を読んでfor文をわかったつもりだったが理解しきれず。アクティブラーニングとしてブログ化してます。
for文とは
値による条件分岐や繰り返し処理を指す「制御構造」を利用するための複合コマンドのこと。 for文は「単語のリストに対して繰返処理を行う構文」。
for文の構造
for 変数名 in リスト do 繰り返し処理 done
「繰り返し処理」の中ではリスト内の要素の値が変数名で参照できる。
for分の例
#!/bin/bash for name in inu neko panda do echo $name done
このときの実行結果としてinu
neko
panda
がそれぞれecho
で標準出力されることになります。
for文の特徴
その1
リストの部分は文字列だけでなく、パス名展開も利用できます。たとえばカレントディレクトリの.txtファイルに対して処理するときは*.txt
と記述すればOK。
その2
リスト部分はコマンド置換も可能です。たとえば数値列を出力するseq
を使えば1〜10までの連番で処理をさせることができます。
その3
for文ではリストとして$@
と指定して、すべてのコマンドライン引数に処理を行うことができる。$@
を対象とすることがとても多いようで、in リスト
を記述しない場合は自動的に$@
とみなされるようになっている。
どんなときに使うのか
リストのパス名展開を駆使して網羅的な処理を施すのが得意なように思える。