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