始める無料で始める

1 回のループで多くのことを行うにはどうすればよいですか?

これまで見てきたループは、本文に 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

前のループで echohead のコマンドの間のセミコロンを入れ忘れて、 次のようにシェルに実行させたとします。

for f in seasonal/*.csv; do echo $f head -n 2 $f | tail -n 1; done

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

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

Shell 入門

コースを見る

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

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

演習を開始する