私が入力している間にman hash
表示されますman builtin
。
私はこの行を理解しようとしています。
hash -r 2>/dev/null || true
すべきことhash -r
と返す項目。
コンテキスト:
export PATH="$PWD/bin:$PATH"
hash -r 2>/dev/null || true
https://github.com/rbenv/rbenv/wiki/Understanding-binstubs#adding-project-specific-binstubs-to-path
答え1
hash
シェルが組み込まれています。
を使用している場合は、次の点を確認してbash
ください。
help hash
あなたの便宜のために:
ハッシュ:ハッシュ[-lr] [-pパス名] [-dt] [名前...]
Remember or display program locations. Determine and remember the full pathname of each command NAME. If no arguments are given, information about remembered commands is displayed. Options: -d forget the remembered location of each NAME -l display in a format that may be reused as input -p pathname use PATHNAME as the full pathname of NAME -r forget all remembered locations -t print the remembered location of each NAME, preceding each location with the corresponding NAME if multiple NAMEs are given Arguments: NAME Each NAME is searched for in $PATH and added to the list of remembered commands. Exit Status: Returns success unless NAME is not found or an invalid option is given.
他のシェルの場合は、組み込み機能の共通位置を確認してください。たとえば、zsh
次のことを確認してください。
man zshbuiltins
hash -r が実行するアクションと返されるアクション
hash -r
ハッシュテーブルから記憶されているすべての場所を削除し、成功を返します。
答え2
hash -r
hashは、で使用されている現在のパスハッシュをリセットする標準化されたシェル組み込み関数ですPATH
。
hash -r
ただし、変更は現在のコマンドハッシュを自動的にリセットするため、設定後に呼び出す必要はありません。これは本当であり、他のシェルも同じように機能することを期待しています。PATH
PATH
Bourne Shell
ksh