3つ目以降も同様にして、全ての値リストが消化されるまでループし続ける。文に指定する変数は、任意の変数を使用することができる。使用して、コマンドの実行結果を直接値リストとして指定することも可能である。それら全てを同時に指定することも可能だ。コマンドであるため)。値リストに処理対象としたい文字列を全て列挙する。文の値リストとして指定する。total=0#↑集計用の変数を初期化。参照してみると、確かに加算されているのが分かる。設定されていることが確認できる。以外はまったく同じだが、出力される内容はまったく違っている。ループ内では特に使用しなくとも問題ない。ループ内で必ず参照する必要はない。したがって、上記のように値の参照は行わずに、単純にループ回数を制限するためのみに使用する、といった使い方もできる。値リストに処理対象となる文字列が設定されている変数を指定する。値リストには文字列の直接指定だけではなく、処理対象となる文字列が設定されている変数を指定することも可能である。fff"#↑変数に値リストとする値を設定する。doneaaabbbcccdddeeefff#↑変数を「""」で囲まない場合。fff#↑変数を「""」で囲んだ場合。常に変数展開後のイメージを考慮しながら記述するとよい。コマンドの実行結果を値リストとして使用する。使用することでコマンドの実行結果を指定することも可能である。文で処理が実行されている。しても実行結果は変わらないので、そちらの記述方法のほうが効率的といえるが、どんな処理になるか一見して分かりづらいため、シェルスクリプトに詳しくない人には、この記述方法が理解されないことが多い。記述するようにしている。コマンドで連番を作成することにより、一定回数のループ処理を作成する。指定することで、一定回数のループを簡単に作成することができる。