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
アプリケーションのすべてのバイナリバージョンを表示するには$PATH
。which -a time
答え3
コマンドが見つかると、シェルは次のデフォルト設定を使用します。
- ニックネーム
- 変数に割り当てる前のパラメータ拡張、コマンド置換、算術拡張、および引用符の削除
- 機能
- 組み込みコマンド
- ハッシュテーブル
- 探す
PATH
time
time
したがって、そのキーワードは、で使用されるよりも優先されますPATH
。たとえば、エイリアスを使用してこの問題を解決できます。
alias time=/usr/bin/time
(パスが設置されている場所によって異なることを確認してください。)