1

我创建了一个简单的 bash 函数:http ://shr.im/ionyse-notify

我想添加一个小完成文件。

我发现了两个有趣的功能:

  • _known_hosts
  • _user_at_host

我怎么能说对于第一个参数,它应该使用 _known_hosts 完成,第二个使用 _user_at_host

#!/bin/bash

_send-msg_complete()
{
  local cur prev

  COMPREPLY=()
  cur=${COMP_WORDS[COMP_CWORD]}
  prev=${COMP_WORDS[COMP_CWORD-1]}

  if [ $COMP_CWORD -eq 1 ]; then
      COMPREPLY=( $(compgen -F _known_hosts -- $cur) )
  elif [ $COMP_CWORD -eq 2 ]; then
      COMPREPLY=( $(compgen -F _user_at_host -- $cur) )
  fi

  return 0
} &&

complete -F _send-msg_complete send-msg

这是我所拥有的,但它不起作用。怎么了 ?

4

1 回答 1

0

实际上,这很简单:

#!/bin/bash

_send-msg_complete()
{
  local cur prev

  COMPREPLY=()
  cur=${COMP_WORDS[COMP_CWORD]}
  prev=${COMP_WORDS[COMP_CWORD-1]}

  if [ $COMP_CWORD -eq 1 ]; then
      _known_hosts
  elif [ $COMP_CWORD -eq 2 ]; then
      _user_at_host
  fi

  return 0
} &&

complete -F _send-msg_complete send-msg
于 2011-04-13T11:05:13.873 回答