外部コマンドの代わりにbashに組み込まれている「time」コマンドを使用してください。

外部コマンドの代わりにbashに組み込まれている「time」コマンドを使用してください。

このコマンドを使用し、外部コマンドの代わりにtime組み込みのGNU timeコマンドを使用する必要がある状況に遭遇しました。ではどうすればいいですか?どこかでand / orを使用すると役に立つと思いましたが、そうではありません。time/usr/bin/timeenablecommand

ユースケースは次のとおりです。

watch "time ls"

/usr/bin/time私が望んでいない外部コマンドを使用します!次のように端末で実行するときに内部bash関数を呼び出すと、timeこれが発生します。time ls

$ time ls

正反対のリクエストがここに回答されました。

2つのコマンドの間には多くの違いがあります。内部コマンドtimeはより正確ですが(必要に応じて)、外部コマンドにはより多くのオプションがあります(不要)。

答え1

デフォルトでは、コマンドwatchは実行され表示さ/bin/sh -c '...'れる出力でコマンドがどのように解釈される/bin/shかを説明しますtime。あなたのものには/bin/sh明らかにそれが組み込まれていませんtime

別のシェルを使用してコマンドを実行するには、この-xオプションを使用してデフォルト値を削除し、必要な組み込みシェルに明示的な呼び出しを追加します。

watch -x bash -c 'time ls'
watch -x zsh -c 'time ls'

どのように実行してもwatch、見ているコマンドはwatchそれを実行するシェルのサブコマンドではないので、シェル設定は直接的な関係はありません。

関連情報