前提:修正プロセスでは.bashrc
、shopt オンライン 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.
質問:
- このオプションは便利ですか?つまり、bashコマンドのパフォーマンスが向上しますか?
- それではなぜ?デフォルト設定
off
? - いいえ、もともとこのオプションが存在するのは古いハードウェアに関連していますか?
答え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$