調べて実際に打ち込んだ感じだと、readは変数に代入するための機能豊富な関数といった感じ。主に次の3つの動作を把握しておけば、スクリプトを読む上では問題ないと思いました。

readで覚えておくこと

標準入力をデリミタによって各変数に代入

read foo bar <<< 'foo bar'
echo $bar $foo # bar foo

ユーザーからの入力を受け付ける

echo 'Do you start? (yes or no)'
read answer
case "$answer" in
  yes)
    : OK
    ;;
  *)
    echo 'interrupt'
    exit 1
    ;;
esac

ヒアドキュメントを読み込む

cnt=0
while read line
do
  cnt=`expr $cnt + 1`
  echo "LINE $cnt : $line"
done << END
ABC
DEF
GHK
END
# LINE 1 : ABC
# LINE 2 : DEF
# LINE 3 : GHK

参考

  1. read コマンドの使い方 - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog
  2. シェルスクリプトでよく使われる while read line 4パターン - eTuts+ Server Tutorial
  3. シェルスクリプトのデバッグは typeset または declare を使うと良いかも - よんちゅBlog
  4. シェルの変数展開 - Qiita
  5. 環境変数PATHをわかりやすく表示する - Qiita