シェル・スクリプト・リファンレス |
コマンド集(機能別) | コマンド集(アルファベット順) | コマンド逆引き大全 | シェル・スクリプト・リファンレス |
指定した文字列分繰り返す「for」 |
forは与えられた複数の文字列に対して,繰り返しながら処理してゆく繰り返し制御文だ。forは以下のように記述をする。
for 変数定義 in 文字列 do 繰り返す処理 done |
複数の文字列はスペースで区切りながら列挙する。たとえば,「Sun」,「Mon」,「Tue」の3つの文字列を処理したい場合は「Sun Mon Tue」と記述する。
変数定義には現在処理している文字列を入れる変数を定義する。ここでは変数に代入をするため変数名の頭に$は付けてはならない。定義した変数は繰り返し処理内で利用できる。
たとえば,以下のようなシェル・スクリプト「name.sh」があったとする。
#!/bin/sh name="Fukuda Tajima Hata" for buf in $name do echo "Name : $buf"; done |
このシェル・スクリプトを実行すると
$ ./name.sh Name : Fukuda Name : Tajima Name : Hata |
のようにメッセージを表示する。
引数分繰り返す |
forを使えばシェル・スクリプトを実行した際に指定した引数分,繰り返して実行できる。その際,forの文字列には「"$@"」を記述すると,スクリプト実行時の引数を利用できる。たとえば,以下のようなシェル・スクリプト「change_euc.sh」があったとする。
#!/bin/sh for t_file in "$@" do nkf -e -Lu $t_file > $t_file.euc done |
このスクリプトを実行すると,引数に与えた全てのファイルをnkfコマンドで文字コードをEUCにして元のファイル名の最後に「.euc」を付けて出力する。
関連事項 |
for,複数のファイルの拡張子を一括変更する,ループから抜け出す「break」,次の繰り返しに移る「continue」 |