bash 쉘 옵션 "checkhash"를 설정하면 실제로 bash 명령의 성능이 향상됩니까?

bash 쉘 옵션 "checkhash"를 설정하면 실제로 bash 명령의 성능이 향상됩니까?

전제:수정 과정에서 .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.

질문:

  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$

관련 정보