Shopt histreedit의 기능은 무엇인가요?

Shopt histreedit의 기능은 무엇인가요?

shopt histreedit사용자는 실패한 내역 교체를 다시 편집할 수 있어야 합니다.

역사적 교체가 어떻게 실패할 수 있습니까?

와 어떻게 histreedit다른 가요 histverify?

답변1

역사적 교체가 어떻게 실패할 수 있습니까?

마지막 명령을 다시 실행하고 싶지만 ls기록 대체 항목을 잘못 입력했다고 가정해 보겠습니다 !lss. 로 시작하는 명령이 없다고 가정하면 lss,

  • 표준 옵션을 사용하면,

    $ !lss
    bash: !lss: event not found
    $
    
  • 를 사용하면 shopt -s histreedit프롬프트가 재설정되어 문제를 더 쉽게 해결할 수 있습니다.

    $ !lss
    bash: !lss: event not found
    $ !lss
    

와 어떻게 histreedit다른 가요 histverify?

histverify대신 기록 대체가 포함된 명령을 실행하려고 시도하지 않고 결과로 나타날 수 있는 명령에 대한 프롬프트를 설정합니다.

$ ls -a
.dotfile file1  file2  file3  ...
$ !ls
.dotfile file1  file2  file3  ...
$ shopt -s histverify
$ !ls
$ ls -a

이는 본질적으로 확인 단계이며 유용할 수 있습니다. 예를 들어, 시도하면 echo "hi!!"Bash는 마지막으로 실행된 명령을 대체하고 !!(큰따옴표는 기록 확장을 비활성화하지 않음) 결과를 자동으로 실행합니다. 분명히 이로 인해 다른 명령이 손상될 수 있습니다. 를 사용하면 histverify예기치 않게 히스토리 확장이 발생하는 경우 이를 중단하고 수정할 수 있습니다.

관련 정보