
私はLubuntu 12.10を使用しています。現在のフォルダにtest.apkというファイルがあるとしましょう。
1.) LXTerminal/bashに入力すると、
adb install t<TAB>
端末は自動的に「test.apk」で正しく完了します。
2.)しかし試してみると
jarsigner -verify t<TAB>
動作しません。
なぜこれが起こるのですか? 2番目のケースでも動作するようにできますか?
答え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
自分で見たい場合は、完成スクリプトは次の場所にあります。