時間は議論を受け入れない

時間は議論を受け入れない

timeをインストールしましたが、使用するとデフォルトの形式ではなく移植可能な形式になります。インストール時にGNU時間1.7または1.72と言ったようです。

次のコマンド

time --help
time --version

「コマンドが見つかりません」エラーが原因で失敗します。 TIME環境変数が設定されていません。時間はなぜこのように動くのでしょうか?

答え1

シェルが一般的にコマンドを検索する方法については、Jesse_bが正確ですが、より簡単な修正方法があります。

\time --version

Bash、ksh、zsh、および他の一般的なシェルは、パスレスコマンドの先行バックスラッシュを「これに対するPATHビューをスキップする」として扱うと思います。

また、組み込み時間が何であるかを知っている場合は、次の手順を実行してこの問題を解決することもできます。

time time --version

結局、no such optionエラーの代わりにコマンドが見つからないというエラーが発生するのは、シェル組み込みが次のコマンドを実行し、完了時に実行するのにかかった時間を確認するためです。これは/bin/timeと同じです。 。

議論する時間があると予想したら…何時なのか気になりますか?それがdate命令だから。

答え2

使用:

\command builtin type time

time実行しているバージョンを確認してください。

これは妄想的なバージョンです。通常はtype time十分ですが、上記の方法で回避できますalias type=echo

timeアプリケーションのすべてのバイナリバージョンを表示するには$PATHwhich -a time

答え3

コマンドが見つかると、シェルは次のデフォルト設定を使用します。

  1. ニックネーム
  2. 変数に割り当てる前のパラメータ拡張、コマンド置換、算術拡張、および引用符の削除
  3. 機能
  4. 組み込みコマンド
  5. ハッシュテーブル
  6. 探すPATH

timetimeしたがって、そのキーワードは、で使用されるよりも優先されますPATH。たとえば、エイリアスを使用してこの問題を解決できます。

alias time=/usr/bin/time

(パスが設置されている場所によって異なることを確認してください。)

関連情報