kumofsのkumoctlとkumostatのコマンドライン補完 (bash編)
hosts, hosts_ks, hosts_km の定義はお使いの環境にあわせて変更してくださいませ。
### kumofs _kumoctl() { local cur prev local commands="status attach attach-noreplace detach detach-noreplace replace full-replace backup" local hosts="localhost" for ((i=101; i<=105; i++)); do # km101 km102 ... hosts="$hosts km$i" done COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} #echo "cur:$cur prev:$prev" >&2 if [ $COMP_CWORD = 1 ]; then COMPREPLY=( $( compgen -W "$hosts" -- $cur )) elif [ $COMP_CWORD = 2 ]; then COMPREPLY=( $( compgen -W "$commands" -- $cur )) fi return 0 } complete -F _kumoctl -o default kumoctl _kumostat() { local cur prev local commands="pid uptime time version cmd_get cmd_set cmd_delete items rhs whs hscheck" local hosts_ks="localhost" for ((i=101; i<=105; i++)); do # ks101 ks102 ... hosts_ks="$hosts_ks ks$i" done local hosts_km for ((i=101; i<=102; i++)); do # km101 km102 ... hosts_km="$hosts_km km$i" done COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} #echo "cur:$cur prev:$prev" >&2 if [ $COMP_CWORD = 1 ]; then COMPREPLY=( $( compgen -W "$hosts_ks -m" -- $cur )) elif [ $COMP_CWORD -ge 2 ]; then if [ "$prev" = "-m" ]; then COMPREPLY=( $( compgen -W "$hosts_km" -- $cur )) else COMPREPLY=( $( compgen -W "$commands" -- $cur )) fi fi return 0 } complete -F _kumostat -o default kumostat