Skip to content

Linux の 2 つの time コマンド

Linux では同じ time コマンドでも、2 種類存在します。

  • /usr/bin/time
  • bash の 組み込みコマンドである time

上記を踏まえれば当然ですが、「どの time なのか?」を意識せずに実行してしまうと以下のように (実行する time が異なってしまうので) 結果が異なります。

bash 上から実行

1
2
3
4
5
6
# time date
Wed Apr  5 09:14:33 AM JST 2023

real    0m0.003s
user    0m0.003s
sys 0m0.000s

bash スクリプトから実行

スクリプト

1
2
#!/bin/bash
time date

実行例

1
2
3
4
5
6
# ./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 を実行していることになります。

1
2
#!/bin/sh
time date

実行例

1
2
3
4
# ./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 コマンドに近い結果が得られます。

1
2
#!/bin/sh
time -p date

実行例

1
2
3
4
5
# ./3.sh
Wed Apr  5 09:18:24 AM JST 2023
real 0.00
user 0.00
sys 0.00