ack 용 설치 안내서는 다음 명령을 사용하여 ack 스크립트를 설치하도록 제안합니다.
curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 !#:3
!#:3
끝에는 일종의 역 참조 라고 가정 하지만 그 의미는 무엇입니까? zsh에 해당하는 것이 있습니까? Google은 도움이되지 않았습니다.
답변
이것은 bash로 확장 된 특수 구문입니다. zsh에서도 작동합니다.
bash 맨 페이지 (섹션 HISTORY EXPANSION)에 따르면 패턴은 다음과 같이 확장됩니다.
- 이벤트 지정자
!#
입니다 지금까지 입력 한 전체 명령 행을 말한다curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755
:
이벤트 지정자 (이 경우 전체 행)와 단어 지정자 (하위 파트 선택 ) 사이를 분할 합니다.- 워드 부호
3
선택 셋째 ,이 경우에는, 워드 / 인수 (제로에서 시작 워드의 카운팅)~/bin/ack
.
최종 명령 행 (일반적으로 실행 전에 표시됨)은 다음과 같습니다
curl http://beyondgrep.com/ack-2.14-single-file > ~/bin/ack && chmod 0755 ~/bin/ack
.
자세한 내용은 bash 매뉴얼 또는 zsh 매뉴얼 과 매우 유사합니다.
답변
에서 bash
기록 대체입니다 (모든 기록 대체는로 시작 함 !
). 특히, !#
지금까지 명령 행의 모든 것을 의미하며 ‘: 3’은 세 번째 단어 (시작은 0부터 시작 함)를 의미합니다.
위의 명령은로 번역 !#:3
됩니다 ~/bin/ack
.