ページ 11

シェルスクリプト

Posted: 2011年8月09日(火) 15:08
by panda
>環境 Linux

シェルスクリプトで下記のようなプログラミングを作りたいのですが、どうしても分かりません。どなたか助けていただけないでしょうか。

2, 3, 4, 5, 6の10万, 20万, 30万, 40万, 50万乗の計算をbcで行い、
それぞれの計算を、スクリプトの第1引数に指定した回数だけ繰り返し、その平均時間を算出すること。例えば「./スクリプト名 5」とすれば、2の20万乗を5回やってその平均時間を出し、次に2の40万乗を5回やっ
てその平均時間を出し、…というようにする。出力は
2の200000乗
×.×× user, ×.×× sys, ×.×× elapsed (executed 5 times)
2の400000乗
×.×× user, ×.×× sys, ×.×× elapsed (executed 5 times)

となるようにせよ(それぞれreal, sys, userの順)。

参考にしているプログラムは下記のものがあります。

#!/bin/sh
A=1
while [ $A -le "$1" ]; do
echo '2^1000000' | /usr/bin/time -p bc 2>&1 > /dev/null
A=`expr $A + 1`
done | awk '
$1="real" { e += $2; n++ }
$1="user" { u += $2 }
$1="sys" {s += $2 }
END{
printf "%.02f user, %.02f sys, %.02f elapsed (executed %d times)\n",u/n,s/n,e/n,n

}