답변:
그것은 bash
역사 확장이다.
!87
히스토리 라인에서 명령을 다시 실행합니다 87
.
이 기능에 대한 설명은 man bash
섹션의“역사 확장” 에서 찾을 수 있습니다 .
An event designator is a reference to a command line entry in the
history list. Unless the reference is absolute, events are relative to
the current position in the history list.
! Start a history substitution, except when followed by a blank,
newline, carriage return, = or ( (when the extglob shell option
is enabled using the shopt builtin).
!n Refer to command line n.
!-n Refer to the current command minus n.
따라서 마지막 명령을 빠르게 호출하려면 마지막 명령을 수행 !-1
하십시오 !-5
. 편리한 동의어 !-1
는 !!
– 예를 들어 호출 apt install something
하고을 잊어 버린 경우 sudo
실행 만하면 sudo !!
됩니다.
역 슬래시 ( \ )와 작은 따옴표 만 히스토리 확장 문자를 인용 할 수 있습니다.
히스토리 확장을 피하려면 백 슬래시 ( \!
)로 느낌표를 이스케이프 하거나 작은 따옴표 ( '!'
)를 사용해야합니다 .
!
명령에 리터럴을 전달하고 기록 확장을 피하려면 작은 따옴표 또는 이스케이프해야합니다. foo '!87'
또는 foo \!87
. (큰 따옴표도 내용의 확장을 수행 할 것입니다.)