1. 학습
  2. /
  3. 강의
  4. /
  5. Shell 入門

Connected

연습 문제

シェルスクリプトでループを書くには?

シェルスクリプトにはループも書けます。セミコロンを使って1行で書くこともできますし、読みやすくするためにセミコロンなしで複数行に分けて書くこともできます。

# 各ファイルの最初と最後のデータ行を表示します。
for filename in $@
do
    head -n 2 $filename | tail -n 1
    tail -n 1 $filename
done

(ループ内のコマンドは字下げしなくても動きますが、インデントすると見やすくなります。)

このスクリプトの最初の行は、スクリプトが何をするかを読者に伝えるためのコメントです。コメントは # で始まり、その行の終わりまで続きます。ここで示したような簡潔な説明を、作成するすべてのスクリプトに付けておくと、将来の自分が助かります。

念のためのリマインドです。Nano で書いた内容を保存するには、Ctrl + O でファイルを書き出し、Enter でファイル名を確定し、Ctrl + X でエディタを終了します。

지침 1/3

undefined XP
  • 1

    スクリプト date-range.sh のプレースホルダーを、$filename(2回)、head、tail で埋めて、1つ以上のファイルから最初と最後の日付を表示するようにしましょう。

  • 2

    seasonal/*.csv を使って名前にマッチさせ、4つすべての季節データファイルに対して date-range.sh を実行してください。

  • 3

    seasonal/*.csv を使って4つすべての季節データファイルに対して date-range.sh を実行し、その出力を sort にパイプして、作成したスクリプトが Unix の組み込みコマンドと同じように使えることを確かめてください。