には影響を与えません。私は、次の2つのコマンドがあります。bashのハッシュコマンドは、私の.bashrcファイルでは、地球環境
hash ih kl klt
hash
.bashrcファイルをソースとした場合、予想通り、出力は次のとおりです。
hits command
0 /userdata/cfor/utils/worklib/kl
0 /userdata/cfor/utils/prodlib/ih
0 /opt/local/tools/bin/vi
その後、コマンドプロンプトに「hash」と入力すると、ハッシュテーブルが空であることがわかります。これは、.bashrcファイルがソースされている間だけ、ハッシュ命令の効果が存続するかのようです。私は.bashrcファイルに "echo $$"命令を入れて、ソーシングが完了した後に$$の値をチェックしました。それらは同じものでした。 .bashrcファイルのソースが終了した後に、hashコマンドの効果が持続しないのはなぜですか?
ありがとうございます!
あなたの '.bashrc'にはほかに何がありますか? 'PATH'を変更していますか? – pneumatics
はい、ただし、.bashrcファイルの一番上にあります。ハッシュ命令は、すべてのパスの編集が完了した後にのみ実行されます。ハッシュコマンドに続く関数定義はありますが、ハッシュコマンドが扱うコマンドとは何の関係もありません。 – rbaumann