#!/usr/bin/env bash function parseResults() { oIFS=$IFS IFS=":" declare -a fields=($1) export QUERYTERM=$(echo "${fields[0]}"|awk '{print $1}'); export LISTCOUNT=$(echo "${fields[0]}"|awk '{print $2}'); export WORDLIST=$(echo "${fields[1]}"|sed 's/^\s*\|\s*$//g'); IFS=$oIFS unset oIFS } if [ $# -eq 0 ]; then >&2 echo "Please provide a word for spell checking. Include quotes." exit 1 fi if [[ "$1" =~ ^[0-9]+$ ]]; then cecho IWhite On_IRed "ERROR. Only Words Please. No Numbers!" exit 1; fi export RESULT=$(echo "$@"|aspell -a|sed "1 d"); # Deletes the header line export FIXED="${RESULT/& }" # Removes ampersand causing parsing errors. if [[ "${FIXED}" == *"*"* ]]; then cecho IBlack On_IGreen "CORRECT!" else parseResults "${FIXED}" cecho IBlack On_IRed "INCORRECT!" cecho IYellow On_Black "There are ${LISTCOUNT} suggested corrections for '${QUERYTERM}': ${WORDLIST}." fi