私はいくつかの記事を読んでいますが、bashスクリプトについては知らず、必要なことをすることはできません。私が試したようにこの投稿
次の機能があります.bash_alias
。サーバーフォルダにCDを移動するだけです。
html() {
cd /var/www/html/$1
}
だからコマンドがhtml myapp
実行されますcd /var/www/html/myapp
。次のステップに行きたいです。
html my<TAB>
フォルダをハードコードせずにオートコンプリートするようにしたいですhtml myapp
。一般的な基本的なオートコンプリート動作が必要です。名前がmyで始まる複数のフォルダがある場合は、フォルダを一覧表示することもできます。ご案内ください。
ベストアンサー1
完成関数を作成する必要があります(通常は名前をとして指定します_html
)。次に、html
組み込み関数を使用して関数をコマンドに関連付けますcomplete
。
_html() {
local cur prev words cword
_init_completion || return
COMPREPLY=($(cd /var/www/html && compgen -o dirnames -- "$cur"))
}
complete -F _html html
(注:_init_completion
に定義されており/usr/share/bash-completion/bash_completion
、直接または経由でインポートされたとします/etc/bash_completion
。)