mirror of https://github.com/tLDP/LDP
47 lines
1.1 KiB
Bash
47 lines
1.1 KiB
Bash
#!/bin/bash
|
|
# agram2.sh
|
|
# Example of nested command substitution.
|
|
|
|
# Uses "anagram" utility
|
|
#+ that is part of the author's "yawl" word list package.
|
|
# http://ibiblio.org/pub/Linux/libs/yawl-0.3.2.tar.gz
|
|
# http://bash.deta.in/yawl-0.3.2.tar.gz
|
|
|
|
E_NOARGS=86
|
|
E_BADARG=87
|
|
MINLEN=7
|
|
|
|
if [ -z "$1" ]
|
|
then
|
|
echo "Usage $0 LETTERSET"
|
|
exit $E_NOARGS # Script needs a command-line argument.
|
|
elif [ ${#1} -lt $MINLEN ]
|
|
then
|
|
echo "Argument must have at least $MINLEN letters."
|
|
exit $E_BADARG
|
|
fi
|
|
|
|
|
|
|
|
FILTER='.......' # Must have at least 7 letters.
|
|
# 1234567
|
|
Anagrams=( $(echo $(anagram $1 | grep $FILTER) ) )
|
|
# $( $( nested command sub. ) )
|
|
# ( array assignment )
|
|
|
|
echo
|
|
echo "${#Anagrams[*]} 7+ letter anagrams found"
|
|
echo
|
|
echo ${Anagrams[0]} # First anagram.
|
|
echo ${Anagrams[1]} # Second anagram.
|
|
# Etc.
|
|
|
|
# echo "${Anagrams[*]}" # To list all the anagrams in a single line . . .
|
|
|
|
# Look ahead to the Arrays chapter for enlightenment on
|
|
#+ what's going on here.
|
|
|
|
# See also the agram.sh script for an exercise in anagram finding.
|
|
|
|
exit $?
|