从已知列表中完成第二个参数

时间:2015-04-30 14:52:46

标签: bash autocomplete

我正在编写bash脚本。它收到两个参数。第一个只是一个用户可以指定但她想要的字符串。然而,第二个论点必须是已知集合的成员,例如applebananapinenutpineapple。我知道如何检查参数是否合法但我觉得必须输入完整的单词很烦人。我可以将参数缩短为abpnpa,但这很难记住并且有点难看。有没有办法提供自动完成功能,以便用户可以按“a + tab”并自动完成apple

1 个答案:

答案 0 :(得分:0)

function autocomp_fruit_script {
  local cur opts
  COMPREPLY=()
  cur="${COMP_WORDS[COMP_CWORD]}"
  fruit="apple banana pinenut pineapple"
  if [ $COMP_CWORD -eq 2 ]; then
    COMPREPLY=( $(compgen -W "${fruit}" -- ${cur}) )
    return 0
  fi
}
complete -o nospace -F autocomp_fruit_script fruit_script

fruit_script是我的剧本。