Diccionario de la RAE en tu terminal GNU/Linux
De vez en cuando se me da por comprar una de esas revistas que hablan de GNU/Linux, sobre todo cuando voy a coger un tren, para entretenerme durante el viaje, y como suelen venir con un CD de las últimas distros que van saliendo pues así de paso las pruebo.
El caso que este fin de semana me compré la “Todo Linux“. Me llamó la atención que en su sección de “Trucos Linux”, el destacado del mes trataba sobre la construcción de un pequeño y simplísimo script para gente nueva en el sistema. El Scritp no lo crearon ellos si no que era una pequeña modificación de un script colgado en TrucoLinux.com y que lo que hacía era mostrar una entrada del diccionario de la RAE en tu terminal.
Como en el artículo comentaban que el script no aceptaba las tildes (ni tampoco las ñ, ni las mayúsculas) pues me dispuse a retocar un poco el mismo para que si aceptara palabras con esos caracteres. Me aburro y lo cuelgo aquí.
El script acepta que le pases la palabra a buscar como parámetro, o se la introduzcas después.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #!/bin/bash ## Funciones: function buscar_palabra { echo "Se está buscando la palabra \"$aux\" en la RAE, esto" echo "puede tardar dependiendo de la velocidad de su conexión" echo '' #Aquí puedes utilizar lynx o links2 en lugar de links, y si quieres #quitarle el "-dump" para visualizar directamente el navegador links2 -dump "http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=$palabra&origen=RAE" echo '' } function adaptar_palabra { #Pasar a minúsculas palabra=$(echo $palabra | awk '{print tolower($0)}') #Para poner la palabra por pantalla aux=$palabra #Cambiar caracteres especiales palabra=$(echo $palabra | sed 's/á/%C3%A1/') palabra=$(echo $palabra | sed 's/é/%C3%A9/') palabra=$(echo $palabra | sed 's/í/%C3%AD/') palabra=$(echo $palabra | sed 's/ó/%C3%B3/') palabra=$(echo $palabra | sed 's/ú/%C3%BA/') palabra=$(echo $palabra | sed 's/ñ/%C3%B1/') } ## Parte principal: if test -z $1 then clear echo "Diccionario de la RAE" echo "Introduce la palabra a buscar:" read palabra adaptar_palabra buscar_palabra else clear palabra=$1 adaptar_palabra buscar_palabra fi |
Argordmel propone en los comentarios que sería bueno que el script te diera la oportunidad de volver a buscar una palabra al final. Bien, pues esta podría ser una de las implementaciones ( es solo la parte principal del script):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | ## Parte principal: buscar="s" count="0" while [ $buscar = 's' ] do if [ $count -eq "0" ] then if test -z $1 then clear echo "Diccionario de la RAE" echo -n "Introduce la palabra a buscar: " read palabra adaptar_palabra buscar_palabra else clear palabra=$1 adaptar_palabra buscar_palabra fi else echo -n "Otra palabra: " read palabra adaptar_palabra buscar_palabra fi count=$(($count+1)) opc=b while [ $opc != 'n' ] && [ $opc != 's' ] do echo -n "¿Buscar otra? [s/n]: " read opc if [ "$opc" = 'n' ]; then exit elif [ "$opc" = '' ]; then opc='b' fi done done |
Como bien dice mch en lo comentarios, si modificamos en esta segunda parte principal con el siguiente recorte de código desde la línea 16 (”else”) hasta la 21 (”fi”), podremos pasar como parámetro más de una palabra:
16 17 18 19 20 21 22 23 24 25 26 27 28 | else for pal in "$@"; do clear palabra=$1 adaptar_palabra buscar_palabra if [ $# -gt 1 ]; then echo "Pulse una tecla para siguiente palabra " read -n1 fi shift done fi |
GNU/Linux, Software Libre, Unix, buscadores, curioso, códigos, shell


Comentarios recientes