저는 루분투 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
또한 compgen
jar 파일 및 특정 프로그램 플래그로 완료를 제한하는 데 사용됩니다.
/usr/share/bash-completion/completions/jarsigner
직접 보고 싶다면 완성 스크립트는 다음 위치에 있을 수 있습니다.