1つのループで複数の処理を行うにはどうすればよいですか?
ここまで見てきたループは、本体に単一のコマンドまたはパイプラインを含むものでした。 しかし、ループにはいくつでもコマンドを含めることができます。 シェルに、1つのコマンドがどこで終わり、次のコマンドがどこから始まるかを伝えるには、 それらをセミコロンで区切らなければなりません。
for f in seasonal/*.csv; do echo $f; head -n 2 $f | tail -n 1; done
seasonal/autumn.csv
2017-01-05,canine
seasonal/spring.csv
2017-01-25,wisdom
seasonal/summer.csv
2017-01-11,canine
seasonal/winter.csv
2017-01-03,bicuspid
前のループで echo コマンドと head コマンドの間のセミコロンを忘れたとしましょう。
すると、シェルに次のように実行させることになります。
for f in seasonal/*.csv; do echo $f head -n 2 $f | tail -n 1; done
シェルはどうするでしょうか?
この演習はコースの一部です
