- - PR -
シェルスクリプトの処理時間
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-06-28 16:28
お世話になります。
bashでシェルスクリプトを作成しています。 そのシェルの中で起動されてから終了するまでの 処理時間(時分秒)を取得したいのですが その方法が分からず悩んでいます。 やりたいこと↓ #!/bin/bash START=開始時分秒をセット ・・・処理 END=終了時分秒をセット TIME=開始時分秒と終了時分秒から処理時間を算出 echo "処理時間:${TIME}" ご教授お願い致します。 | ||||||||
|
投稿日時: 2005-06-28 16:38
% time シェル
| ||||||||
|
投稿日時: 2005-06-28 16:56
どもです。がると申します。
んっと…「Perlでそーゆープログラムを作成してみる」ってのは どうでしょう? 秒単位でよいのかもしれませんが、その気になればマイクロ秒単位まで 取得が可能です :-P | ||||||||
|
投稿日時: 2005-06-28 17:15
早速のご返事ありがとうございます。
> % time シェル スクリプト内で処理時間を計測したいので time コマンドは難しいかもしれません。 >「Perlでそーゆープログラムを作成してみる」ってのは >どうでしょう? なるほど。Perlですね。 やはりシェルだけでは無理なのでしょうか? う〜ん。。。 | ||||||||
|
投稿日時: 2005-06-28 17:21
はじめまして、初めての書込みです。
exprコマンドを使ってはどうでしょう。 時分秒はexprで秒にし、終了時間から開始時間をひく expr ${END} - ${START} で、結果をまた時分秒に戻す。 日をまたぐ可能性が無いなら簡単にできますよ。 | ||||||||
|
投稿日時: 2005-06-28 17:46
bashなんですから、 $(( 数式 )) でも行けます。 特に理由がなければ、外部コマンドに頼らずに処理しちゃった方がいいと思います。 ----
時間を計測したい処理をシェルスクリプトにした上で、 timeを実行すればよいんじゃないかと。 [ メッセージ編集済み 編集者: Mattun 編集日時 2005-06-28 18:01 ] | ||||||||
|
投稿日時: 2005-06-28 17:50
exprと`date +%s` を使ってできました。
ありがとうございました。 #!/bin/bash START=`date +%s` ・・・処理 END=`date +%s` SS=`expr ${END} - ${START}` HH=`expr ${SS} / 3600` SS=`expr ${SS} % 3600` MM=`expr ${SS} / 60` SS=`expr ${SS} % 60` echo "${HH}:${MM}:${SS}" | ||||||||
|
投稿日時: 2005-06-28 17:52
> $(( 数式 ))
なるほど、↑のような書き方もできるんですね。 勉強になりました。 ありがとうございました。 |