bash-autocomplete가 특정 스크립트의 특정 파일 형식을 인식하도록 합니다.

bash-autocomplete가 특정 스크립트의 특정 파일 형식을 인식하도록 합니다.

bash특정 특정 파일 형식을 식별하는 방법은 무엇입니까 script?

lilypond-file예를 들어, 나는 를 컴파일 한 다음 자동으로 컴파일된 파일을 여는 작은 스크립트를 작성했습니다 pdf.

#!/bin/bash

run() {
    lilypond "$1"
    name=$(basename "$1" .ly)
    if [ -f "${name}.pdf" ]; then
        xpdf -cont -remote LilyPreview "${name}.pdf" &
    else
        printf "\\n file %s.pdf is not present..!\\n\\n" "$name"
    fi
}

run "$@"

폴더에 있는 파일 bash만 제안 하고 기본 이름이 같은 파일은 무시하는지 어떻게 알 수 있나요 ?*.ly*.pdf*.midi


업데이트 2.3:

그래서 내가 실행하고 싶을 때: bashs 자동 완성도 존재 하는지 script.sh myfile.ly제안합니다 . 나는 이 스크립트가 (편의를 위해서가 아니라) 파일을 읽기만 원한다는 것을 bash가 알기를 원합니다 .myfile.pdfmyfile.midi*.ly

답변1

귀하의 항목에 ~/.bashrc다음과 같은 항목을 추가하여 자동 완성을 활성화할 수 있습니다 script.sh.

complete -f -X '!*.ly' script.sh

-f옵션은 파일 이름을 지정하는 -X필터 패턴입니다. (필터 패턴은 패턴과 일치하는 값을 제거하므로 !패턴을 무효화하여 *.ly그 이외의 모든 파일 이름을 제거하는 데 사용됩니다.

관련 정보