For Loops

for variable [in words]; do commands done

[me@linuxbox ~]$ for i in {A..D}; do echo $i; done
A
B
C
D
#!/bin/bash

# longest-word: find longest string in a file

while [[ -n "$1" ]]; do
   if [[ -r "$1" ]]; then
       max_word=
       max_len=0
       for i in $(strings "$1"); do
           len="$(echo -n "$i" | wc -c)"
           if (( len > max_len )); then
               max_len="$len"
               max_word="$i"
           fi
       done
       echo "$1: '$max_word' ($max_len characters)"
   fi
   shift
done

If the optional in words portion of the for loop is omitted, for defaults to processing the positional parameters.

#!/bin/bash

# longest-word2: find longest string in a file

for i; do
    if [[ -r "$i" ]]; then
        max_word=
        max_len=0
        for j in $(strings "$i"); do
            len="$(echo -n "$j" | wc -c)"
            if (( len > max_len )); then
            max_len="$len"
            max_word="$j"
            fi
        done
        echo "$i: '$max_word' ($max_len characters)"
    fi
done

The use of i and j is a throwback from Fortran where undeclared variables started with the letters I, J, K, L, and M.