.bash_aliases
にはエイリアスコマンドがたくさんあります
最も一般的な例は次のとおりです。
alias apt-update="Sudo apt-get update"
alias apt-upgrade="Sudo apt-get dist-upgrade"
しかし、私も持っています
alias apt-install="Sudo apt-get install "
alias a2avail="/etc/Apache2/sites-available"
最初の2つは問題ありませんが、2つ目はより強力にしたいです。
特にapt-install
の場合、オートコンプリートを機能させたいです。
a2availの場合、Sudo cp a2avail/default a2avail/new
のようなものを入力し、Sudo cp /etc/Apache2/sites-available/default /etc/Apache2/sites-available/new
として実行できるようにしたい
これら二つのことのどちらかが可能ですか?
次を~/.bashrc
に追加すると、apt-installエイリアスのパッケージ名が完成するはずです
_apt_install_complete() {
mapfile -t COMPREPLY < <(apt-cache --no-generate pkgnames "$2");
}
complete -F _apt_install_complete apt-install
A2availに関しては、エイリアスはコマンドの最初のWordとしてのみ機能しますが、変数を使用できます。
a2avail=/etc/Apache2/sites-available # in ~/.bashrc
# then...
Sudo cp "$a2avail"/{default,new}