문자 클래스를 인라인으로 포함하는 전역 스키마를 확장하는 방법은 무엇입니까?

문자 클래스를 인라인으로 포함하는 전역 스키마를 확장하는 방법은 무엇입니까?

나는 이것을 만났다질문Bash에서 내 glob 패턴을 인라인으로 확장하는 방법을 찾으려고 합니다. 하지만 내 경우에는 스키마에 일부 문자 클래스가 포함되어 있습니다.

3개의 파일이 있다고 가정해 보겠습니다.abc bbc 1bc

내가 입력할 때:

$> somecommand [[:alpha:]]bc

내 명령을 인라인으로 확장할 수 있는 키 조합이 있는지 궁금합니다.

$> somecommand abc bbc

나는 Ctrl+X *성공하지 못한 채 키 시퀀스를 시도했습니다. 단순한 전역 패턴에서만 작동하는 것처럼 보이지만 패턴에 특정 문자 클래스가 포함된 경우에는 확장되지 않습니다.[[:alpha:]]

답변1

이는 단어 완성을 위한 단어 구분 기호로 간주되는 :문자 목록(셸 변수에 노출됨)이 있기 때문입니다.readlinebash$COMP_WORDBREAKS

뒤쪽에:

COMP_WORDBREAKS=${COMP_WORDBREAKS/:}

:(에서 제거됨 $COMP_WORDBREAKS), Ctrl+가 X*작동해야 합니다.

:문자 클래스 내에서 사용되기 때문에 애초에 이 목록에 있어서는 안 된다고 주장할 수도 있지만 , 다음과 같은 목적으로 완성 기능을 사용할 수 있기를 원한다는 근거가 있다고 생각합니다.

경로=~/bin:/usr/locTab

Ctrl그리고 두 가지를 모두 수용하기에는 메커니즘이 너무 조잡해서( + X*on을 제거해도 작동하지 않음을 알 수 있음 'a'*) 절충안입니다. 두 경우 모두에 적합한 고급 편집 기능을 갖춘 쉘을 여기에서 확인하세요.'$COMP_WORDBREAKSzsh

관련 정보