私は非常に単純なコマンドを実行しています。
[tester@centos-lvm ~]$ time cal > /dev/null
real 0m0.001s
user 0m0.000s
sys 0m0.001s
time
ただし、実行可能ファイルのフルパスを指定すると、他の結果が表示されます。
[tester@centos-lvm ~]$ /usr/bin/time cal > /dev/null
0.00user 0.00system 0:00.00elapsed ?%CPU (0avgtext+0avgdata 928maxresident)k
0inputs+0outputs (0major+272minor)pagefaults 0swaps
time
私は(パスなしで)次を実行すると、/usr/bin/time
これが実際に実行されると思います。
[tester@centos-lvm ~]$ which time
/usr/bin/time
man time
2つの出力形式があり、この-p
オプションはそれらの中から選択したことを伝えます。しかし、私はオプションを指定していません!エイリアスを確認しましたが、時間に関する情報はありません。
この動作は非常に予期せず、非常に奇妙です。誰かがなぜこれが起こるのか説明できますか?
答え1
パスなしで使用する場合は、組み込みtime
シェルが提供するユーティリティを使用できます(該当するシェルのマニュアルを参照)。パスを指定するときは間違いなく外部ユーティリティを使用しています。
2つの実装と生成される出力は異なる場合があります。