Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

161
Vistas
Script de shell del corrector ortográfico

Tengo algunas preguntas. Tengo un problema con un script que se supone que es un simple corrector ortográfico.

Lo que debe hacer es, cuando se encuentra una palabra incorrecta, le pedirá al usuario que ingrese la ortografía correcta de la palabra, si el usuario ingresa la ortografía correcta, luego mostrará la palabra corregida junto con la palabra incorrecta hacia abajo. a continuación (después de leer todas las palabras). Pero, si el usuario simplemente presiona Enter, entonces tomará la palabra como la ortografía correcta y la colocará en ~./memory, de modo que si se ejecuta nuevamente, pasará por alto esta palabra.

A partir de ahora, la ortografía correcta/incorrecta de las palabras no se muestra y no se "recuerda" nada en ~./memoria. Y para ser honesto, no estoy muy seguro de por qué.

 #! /bin/bash wrongWords=`aspell list < $1` touch ~/.memory for wrongWord in $wrongWords do echo $wrongWord "is mispelled." read -p "Press ""Enter"" to keep this spelling, or type a correction here: " newWord if [ "$newWord" = "" ] then echo "$newWord" >> ~/.memory fi done printf "%-20s %-20s \n Mispelled: Corrections:" printf "\n $wrongWord $newWord"
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Edité partes delicadas de su secuencia de comandos, que son una buena suposición para tratar de encontrar el problema real. Combiné ligeramente mi propia lógica en esto, pero sin mucho cuidado. Adjunto el script editado a esta pregunta con la esperanza de que sea un buen paso para encontrar su problema, y le sugiero que lea más sobre los siguientes temas:

  • No lea líneas con for .
  • Sustitución de procesos.
  • Prueba y Condicionales .

Los tres enlaces anteriores se tomaron de esta Guía de Bash, que es una de las principales y únicas fuentes para aprender Bash.

También me gustaría recomendarle que use ShellCheck para verificar sus scripts cuando sea necesario en el futuro.


Guión editado. No necesariamente correcto.

 #! /bin/bash # This script should be checked before use. # It is not necessarily correct. wrong_words=() new_words=() while read -r ww; do printf '%s is mispelled.\n' "$ww" wrong_words+=("$ww") read -rp "Press \"Enter\" to keep this spelling, or type a correction here: " nw # User provided a correction to $ww if [[ $nw ]]; then printf 'User corrected %s to %s\n' "$ww" "$nw" new_words+=("$nw") else printf 'User decided to keep the spelling of %s even though it was detected to be wrong.\n' "$ww" fi done < <(aspell list < "$1") # Saving new words to ~/.memory_words printf '%s\n' "${new_words[@]}" >> ~/.memory_words # Displaying info. Not necessarily useful. printf 'New word: %s\n' "${new_words[@]}" printf 'Wrong word: %s\n' "${wrong_words[@]}"

Las palabras nuevas se guardan en la matriz new_words . Las palabras incorrectas se wrong_words en la matriz de palabras incorrectas. Al final del script, la matriz new_words se agrega al archivo ~/.memory_words .

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda