シェルスクリプト
まず、各自$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を以下の通りシェルスクリプトとして実行できるように変更する。
----------------------------------------------------------------------------
icho% csh ex-1
(ここで必要な作業を行い以下のようにシェルへ入力するだけで実行できるようにする)
icho% ex-1
----------------------------------------------------------------------------
pwd コマンド、ls -F コマンド、dateコマンドを続けて実行するコマンドを「ex-2」という名前で作成し、実行してみよ。
ファイル「judge」を各自で実行し、動作を確認する。このファイルを変更して以下にしめすような要求を満たすコマンド「ex-3」を作成し、実行してみよ。
ファイル「judge」は成績判定を行うコマンドである。現在は、80点、70点、60点がそれぞれABCDの境目となる点数である。
この境目となる点数を変更したい場合、このままでは、ファイル中の数箇所を同時に書き換えなければならない。
そこで、この境目となる点数を変数に格納し、その変数への代入文を書き換えるだけで境目となる点数を変更できるようにする。
具体的にはif文の中に直接点数が書かれているものを変数の参照に書き換える。
ファイル「division」は除算を行う整数2つを引数として受け取っている。
これを以下の実行例に示すような問い合わせ型のコマンドに変更する。
----------------------------------------------------------------------------
icho% ex-4
除算を行う整数を入力してください: 10 ← "10"は、入力する値
もう一つの整数を入力してください: 3 ← "3"は、入力する値
商=3 余り=1 ← これが計算結果
----------------------------------------------------------------------------
(これは余力のある人が行ってください)ファイル「schedule」「query-date」を各自で実行し、動作を確認する。これらのファイルを変更して以下に示すような要求を満たすコマンド「ex-5」を作成し、実行してみよ。
ファイル「query-date」は、dateコマンドを実行するかどうかをif文を用いている。
ファイル「schedule」を参考にして「query-date」をswitch文を使うように変更する。
(さらに余力のある人が行ってください)以下に示すような要求を満たすコマンド「ex-6」を作成し、実行してみよ。
コマンドex-6は引数に指定した整数を掛け合わせた結果を返すコマンドである。
引数は、2個から8個まで自由に変えることができるものとする。引数の数が9個以上ならばエラーを返すようにする。
例えば、出来上がった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、$*などを使うとできる。
上記課題を実行して出来上がったシェルスクリプトファイル(最低限は「ex-1」から「ex-4」まで)を以下のコマンドを実行し、一つにまとめる。出来上がったファイルを提出課題のファイルとする。以下のコマンドの詳細については、テキスト第3章を参照のこと。
----------------------------------------------------------------------------
icho% pwd (各自実習を行ったディレクトリであることを確認すること)
icho% more ex-* > report-5
----------------------------------------------------------------------------
以下の内容を記載したファイルをMuleなどで作成し、そのファイルを 実習レポートのファイルとする。
学籍番号、所属、氏名
今回の講義内容と各自が実施した課題内容の項目、問題点、疑問点(以上は箇条書きにすること)
電子メールにて提出する。宛先は、佐藤、鈴木、自分自身とする。 メール送信 report.shを用いて、ichoから送信すること。
メールの件名は「report5」と(半角文字)とする。
提出期限は、1月29日(火)までとする。
授業のページに戻る