jarsigner 파일 매개변수에 대해 자동 완성이 작동하지 않습니다.

jarsigner 파일 매개변수에 대해 자동 완성이 작동하지 않습니다.

저는 루분투 12.10을 사용하고 있습니다. 현재 폴더에 test.apk라는 파일이 있다고 가정해 보겠습니다.

1.) LXTerminal/bash에 입력하면,

adb install t<TAB>

터미널은 자동으로 "test.apk"로 올바르게 완료합니다.

2.) 하지만 시도하면

jarsigner -verify t<TAB>

작동하지 않습니다.

왜 이런 일이 발생합니까? 두 번째 경우에도 작동하도록 할 수 있나요?

답변1

jarsigner완성 스크립트가 있습니다 배쉬 완료. bash 완성을 사용 중일 수 있습니다. 많은 배포판에서는 기본적으로 이를 설치합니다. 완성 스크립트는 jarsigner일부 파일 이름 필터링을 수행합니다. 확장자를 가진 파일이 필요합니다 .jar. 다음은 완성된 스크립트에서 발췌한 내용입니다.

# Check if a jar was already given.
local i jar=false
for (( i=0; i < ${#words[@]}-1; i++ )) ; do
    if [[ "${words[i]}" == *.jar && \
        "${words[i-1]}" != -signedjar ]] ; then
        jar=true
        break
    fi
done
...
if ! $jar ; then
...
        COMPREPLY=( $( compgen -W '-keystore -storepass -storetype
            -keypass -sigfile -signedjar -digestalg -sigalg -verify
            ...
    _filedir jar
    ...

.jar확장자를 가진 파일이 제공될 때까지_filedir 또한 compgenjar 파일 및 특정 프로그램 플래그로 완료를 제한하는 데 사용됩니다.

/usr/share/bash-completion/completions/jarsigner직접 보고 싶다면 완성 스크립트는 다음 위치에 있을 수 있습니다.

관련 정보