第3回Bashゼミ for文処理について 発表者 直江 宗紀 for文 for文 do~doneで囲った部分を繰り返す for文の記述形式 for 変数 in 値(複数可) for文の構文例 for 変数 in 引数1 引数2 … do 処理 done for文の記述例 プログラム例 for x in a b c d e f g do echo $x done [実行結果] a b c d e f g パラメータ変数との連携 パラメータ変数とは… スクリプト実行時、スクリプトに渡す引数列 $@,$*,等、スクリプトに渡す引数を参照できる パラメータ変数を用いたプログラム例 [test.sh] #!/bin/bash for arg in $@ do echo ${arg} done [実行結果] >test.sh aa bb cc dd >aa >bb >cc >dd 他のコマンドとの連携 for構文では・・・ 他のコマンドや配列を用いて利用可能 利用可能コマンドとして → seqなどが挙げられる seqとは 指定した数字の間をカウントし表示する 例:seq 1 2 10 意味:1から10まで2足しながらカウントする seqコマンド(1) seq –数字シークエンス表示コマンド 記述 seq [OPTION] LAST seq [OPTION] FIRST LAST seq [OPTION] FIRST Increment LAST オプション -f:フォーマット指定(%e, %f ,%g のうち1つ) -s:指定文字列を区切りにする -w:数字桁を揃えるために上位桁に0を入れる seqコマンド(2) オプションについて(続き) -f 指定フォーマット[%e,%f,%g] (通常は%g) %e : 浮動小数点表示(記述例:1.0000e+00) %f : 小数表示 %g : 整数表示 (%e,%f表示の際、指定最終値は表示されない) seqコマンド(3) オプションについて(続き) -s 指定した文字列を区切り文字とする (通常は“\n”) 例 seq –s ‘,’ 1 2 10 [出力結果] 1,3,5,7,9 seqコマンド(4) オプションについて(続き) -w 表示桁を揃えるために0を出力 例: seq –w 1 10 [出力結果] 01 02 03 04 05 06 07 08 09 10 seqコマンド(5) オプションについて 記述位置はseqのすぐ後でのみ有効 (数字の後ろではエラーとなる) 例: [実行結果] seq –f %f 1 2 10 1.000000 3.000000 5.000000 7.000000 9.000000 連携プログラム例 プログラム例 for a in seq 1 2 10 do echo $a done [実行結果] 1 3 5 7 9 1から順に2飛びずつカウントする 練習問題 1. 2. コマンドライン上から任意の数字を渡した時、1 からその数字までの総和を求めて表示するス クリプトを作成せよ。 コマンドライン上から任意の数字を渡した時、 その数字までに幾つ素数があるのかをカウント し、その結果を表示するスクリプトを作成せよ。 (コマンド”factor”を利用する)
© Copyright 2024 ExpyDoc