Lord Sarevok

Desarrollador web

Autocompletar las bases de datos con mysql

April 2nd 2011

Es la primera vez que me hago un script en bash más allá de la ejecución secuencial de comandos y hoy hice uno para autocompletar las bases de datos que tenemos en nuestra máquina, siempre es una molestia entar en mysql, buscar el nombre exacto, hacer el use… Al leer lo fácil que es crear un comando que autocomplete en este post, no tuve más que sustituir un par de comandos y crear el alias para acceder directamente a una base de datos.

alias mysql_use="mysql -u root -D"
_complete_db() {
  databases=`mysql -u root -e 'show databases' | cat`
  cur="${COMP_WORDS[COMP_CWORD]}"
  COMPREPLY=( $(compgen -W "${databases}" -- ${cur}) )
}
complete -F _complete_db mysql_use

Vale que no compruebo si está disponible mysql, vale que el acceso lo hago directamente con el usuario root, pero para mi es suficiente ya que es para trabjar en local. Otro apunte, seguro que habrá formas más limpias que usar el alias, pero de momento es la que conozco :).