始める無料で始める

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

シェルはどうするでしょうか?

この演習はコースの一部です

Shell 入門

コースを見る

実践的なインタラクティブ演習

理論を実践に変える、インタラクティブな演習のひとつをお試しください

演習を開始する