第5回目

シェルスクリプト

注意

  1. この演習で作成するコマンド(シェルスクリプトにおいて)、最終行の改行を忘れると、最終行のコマンドが実行されないので注意する。

  2. 先頭行の最初が#であればcshのスクリプトと解釈されるとオンラインマニュアルには記載があります。

課題

  1. まず、各自$HOME/UNIXclassに移動して、ichoに用意した次のディレクトリの内容をコピーする。次に、今コピーしたディレクトリshellscriptに移動する。cpコマンドに"-r"オプションをつけるとディレクトリごとコピーできる。

    ----------------------------------------------------------------------------
    icho% cd 
    icho% cd UNIXclass
    icho% cp -r /home1/akira/SAMPLE/shellscript  .
                                                ^^^
                                   (最後のピリオドを忘れないこと)
    icho% cd shellscript
    icho% pwd             (各自自分のホームディレクトリ下であることを確認すること)
    ----------------------------------------------------------------------------
           

    コピーされるファイルは以下の通り。

    ex-1
    シェルスクリプトの例
    judge
    if文の例;成績判定のコマンド
    input-output
    特殊なシェル変数の例;標準入力から1行読み込み、標準出力に書き出すコマンド
    division
    算術演算の例;除算を行うコマンド
    query-date
    if文の例;問い合わせをしてからdateコマンドを実行するコマンド
    schedule
    switch文の例;週間スケジュールを表示するコマンド

  2. コピーしたディレクトリ下のファイルex-1を以下の通りシェルスクリプトとして実行できるように変更する。

    ----------------------------------------------------------------------------
    icho% csh ex-1 
    (ここで必要な作業を行い以下のようにシェルへ入力するだけで実行できるようにする)
    icho% ex-1
    ----------------------------------------------------------------------------
           
  3. pwd コマンド、ls -F コマンド、dateコマンドを続けて実行するコマンドを「ex-2」という名前で作成し、実行してみよ。

  4. ファイル「judge」を各自で実行し、動作を確認する。このファイルを変更して以下に示す要求を満たすコマンド「ex-3」を作成し、実行してみよ。

  5. ファイル「input-output」「division」それぞれを各自で実行し、動作を確認する。これらのファイルを統合して以下に示す要求を満たすコマンド「ex-4」を作成し、実行してみよ。

  6. (これは余力のある人が行ってください)ファイル「schedule」「query-date」を各自で実行し、動作を確認する。これらのファイルを変更して以下に示すような要求を満たすコマンド「ex-5」を作成し、実行してみよ。

  7. (さらに余力のある人が行ってください)以下に示すような要求を満たすコマンド「ex-6」を作成し、実行してみよ。

    例えば、出来上がったex-6を実行した場合以下のようになるはずである。

    ----------------------------------------------------------------------------
    icho% ex-6 1 2
    2
    icho% ex-6 1 2 3
    6
    icho% ex-6 1 2 3 4 5 6 7 8
    40320
    icho% ex-6 1 2 3 4 5 6 7 8 9
    引数は8個までにしてください
    icho%
    ----------------------------------------------------------------------------
           

    ヒント:foreach文、$#argv、$*などを使うとできる。

レポート

  1. 上記課題の1から5までを実行して出来上がったシェルスクリプトファイルを以下のコマンドを実行し、一つにまとめる。 以下のコマンドの詳細については、テキスト第3章を参照のこと。

    ----------------------------------------------------------------------------
    icho% pwd   (各自実習を行ったディレクトリであることを確認すること)
    icho% more ex-[1-4] > report-5
    ----------------------------------------------------------------------------
           
  2. 科目名、学籍番号、所属、氏名の記載されたファイルを作成する。

上記二つのファイルを提出する。 レポート提出にはreport.shを用いること。なお、report.shは、この演習で作成したディレクトリにコピーしておくとよい。

提出期限2005年10月17日午後10時
宛先akira-report-05@ipe.tsukuba.ac.jp佐藤
件名Report05全て半角で入力、途中にスペースを入れない

採点基準(合計10点)

電子メール以外での提出は採点対象にならない。

  1. 電子メールに「科目名、所属、学籍番号、氏名」が書いてある。2点

  2. 電子メールに課題ex-1が含まれている。2点

  3. 電子メールに課題ex-2が含まれている。2点

  4. 電子メールに課題ex-3が含まれている。2点

  5. 電子メールに課題ex-4が含まれている。2点


授業のページに戻る

第4回のページへ戻る

第6回のページへ進む