.javaが直接実行できるようになって久しい
java xxx.java
と直接ソースを実行できるようになって久しいです。裏ではコンパイルしているので、ちょっとだけタイムラグを感じますが、スクリプト的にJavaが使えるのは便利です。
java [タブ]で、xxx.javaを補完したい
スクリプト的に使いたいとなると、ファイル名の補完もやりたいです。
以下のbash_completion設定ファイルを作成・保存します。
/etc/bash_completion.d/java
_java()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
opts="$(find . -maxdepth 1 -name '*.java' -print0 | xargs -0 -n1 basename)"
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
}
complete -F _java java
あとは、bash -l
でログインスクリプトから読み直して反映すれば使えます。