Linux の 2 つの time コマンド
Linux では同じ time
コマンドでも、2 種類存在します。
/usr/bin/time
- bash の 組み込みコマンドである
time
上記を踏まえれば当然ですが、「どの time
なのか?」を意識せずに実行してしまうと以下のように (実行する time
が異なってしまうので) 結果が異なります。
bash 上から実行
| # time date
Wed Apr 5 09:14:33 AM JST 2023
real 0m0.003s
user 0m0.003s
sys 0m0.000s
|
bash スクリプトから実行
スクリプト
実行例
| # ./sample2.sh
Wed Apr 5 09:15:24 AM JST 2023
real 0m0.002s
user 0m0.002s
sys 0m0.000s
|
sh スクリプトから実行
スクリプト
(bash 組み込み time
が実行されない為) 下記では /usr/bin/time
を実行していることになります。
実行例
| # ./sample1.sh
Wed Apr 5 09:15:01 AM JST 2023
0.00user 0.00system 0:00.00elapsed 82%CPU (0avgtext+0avgdata 2332maxresident)k
0inputs+0outputs (0major+92minor)pagefaults 0swaps
|
sh スクリプトからオプション付きで実行
スクリプト
下記も /usr/bin/time
を実行していることになりますが、-p
オプションを指定することで bash 組み込み time
コマンドに近い結果が得られます。
実行例
| # ./3.sh
Wed Apr 5 09:18:24 AM JST 2023
real 0.00
user 0.00
sys 0.00
|