bashシェルオプション"checkhash"を設定すると、実際にbashコマンドのパフォーマンスが向上しますか?

bashシェルオプション"checkhash"を設定すると、実際にbashコマンドのパフォーマンスが向上しますか?

前提:修正プロセスでは.bashrcshopt オンライン bash マニュアル処理できるさまざまなシェルオプションのページがあります。説明によると、shoptこのオプションが見つかりました。checkhash

checkhash
    If this is set, Bash checks that a command found in the hash table exists 
    before trying to execute it. 
    If a hashed command no longer exists, a normal path search is performed.

質問:

  1. このオプションは便利ですか?つまり、bashコマンドのパフォーマンスが向上しますか?
  2. それではなぜ?デフォルト設定off
  3. いいえ、もともとこのオプションが存在するのは古いハードウェアに関連していますか?

答え1

私はこの設定が「パフォーマンス」ではなくユーザーエクスペリエンスを向上させる必要があると思います。

hash -r実行可能ファイルを移動または削除するときに手動で実行する必要はありません。

比較する:

bash$ mkdir -p first second; PATH=$PATH:first:second
bash$ echo echo ok > first/ok; chmod 755 first/ok
bash$ ok
ok
bash$ mv first/ok second/ok
bash$ ok
bash: first/ok: No such file or directory
   # Yet it's in the PATH!
bash$ hash -r
bash$ ok
ok

比較的

bash$ shopt -s checkhash
bash$ mv second/ok first/ok
bash$ ok
ok
bash$ mv first/ok second/ok
bash$ ok
ok
bash$

関連情報