1 votes

Bash autocompléter le script personnalisé avec des possibilités à partir d'un fichier texte

J'ai un script shell que je veux exécuter qui accepte un argument (en fait, un court nom d'hôte). Tous les noms d'hôte autorisés pour ce script sont stockés dans un fichier texte brut, une entrée par ligne. J'aimerais pouvoir taper le nom de mon script, puis avoir l'autocomplétion fonctionner pour l'argument. Par exemple, supposons que mon script soit sur mon chemin d'accès et s'appelle run_remote.sh. Tous les arguments possibles pour ce script sont stockés dans ~/data/remote_hosts.txt. Je veux taper run_remote.sh puis avoir l'autocomplétion remplir les candidats en fonction du contenu de ~/data/remote_hosts.txt

1voto

J'ai trouvé une solution fonctionnelle :

_run_remote_completion() {
  local cur_word="${COMP_WORDS[COMP_CWORD]}"
  local hosts=$(cat ~/data/remote_hosts.txt)
  COMPREPLY=($(compgen -W "$hosts" -- "$cur_word"))
}
complete -F _run_remote_completion run_remote.sh

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X