#!/bin/bash # Function for autocompletion _igmpgen_completion() { local cur prev opts igmp_types COMPREPLY=() # Array variable storing the completions. cur="${COMP_WORDS[COMP_CWORD]}" # Current word being completed. prev="${COMP_WORDS[COMP_CWORD-1]}" # Previous word. # Options for igmpgen opts="-i -t -g -s -d -n" # Available IGMP packet types igmp_types="1.query 1.report 1.dvmrp 2.query 2.report 2.leave 3.report" case "${prev}" in -t) COMPREPLY=( $(compgen -W "${igmp_types}" -- ${cur}) ) return 0 ;; esac # If the previous word is an option requiring an argument, don't complete with options case "${prev}" in -i | -g | -s | -d | -n) return 0 ;; esac # Default completion: suggest igmpgen options COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) } # Attach the completion function to igmpgen command complete -F _igmpgen_completion igmpgen