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
예기치 않게 히스토리 확장이 발생하는 경우 이를 중단하고 수정할 수 있습니다.