URLquiz1.sh.txtスクリプトの使い方の解説いわゆるシーザー暗号を解読するためのシェルです。スクリプトファイルを任意のディレクトリにダウンロードします。kadai1-3_data.txtを、先のディレクトリと同様の場所にコピーします。スクリプトファイルの拡張子を「.sh.txt」から「.sh」に変更し、実行権限を与えます。[調べるテキストファイル名]」と入力して実行します。この際、ファイル名にkadai1-1_data.txt、kadai1-2_data.txt、kadai1-3_data.txt以外を入力すると、「Error」と表示されます。memo-off.blogspot.jphttp://memo-off.blogspot.jp/2012/11/bashn.htmhttp://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231163/trコマンドの扱い方について参考にしました。池田くんのレポートhttp://itpass.scitec.kobe-u.ac.jp/~ikedaryo/report01/scripts/quiz1.sh.txt見ていて、似たような方法でdoを使って回すことを思いつきました。感想trコマンドを見つければ、終わりまですぐでした。同じようなコマンドを26回入力していたのですが、これをdo文を利用して、数行でまとめられました。URLquiz2.sh.txtスクリプトの使い方の解説まずスクリプトファイルを任意のディレクトリにダウンロードします。次にitpassサーバ内の気象データの圧縮ファイルkadai2_data.tar.gzを、先のものと同様のディレクトリにコピーし、gzファイルを展開します。スクリプトファイルの拡張子を「.sh.txt」から「.sh」に変更し、実行権限を与えます。「./quiz2.sh」入力すると、表示したいデータの入力を要求されるので、1、2、3のいずれかの数字を入力します。このとき1、2、3以外の文字を入力するとエラー文が表示されます。http://takeno.iee.niit.ac.jp/~shige/misc/script/awk1/node6.htmlawk内でintを用いて値の整数部分を抽出する方法を参考にしました。ソフトウェアエンジニアのためのtipshttp://sweng.web.fc2.com/ja/program/bash/read-each-line.htmlファイルを行ごとに処理する方法を参考にしました。zenpouの日記http://d.hatena.ne.jp/zenpou/20081001/1222868503forの適用範囲を値で指定する方法を参考にしました。教えて!goohttp://oshiete.goo.ne.jp/qa/4766063.htmlファイルの行数を抽出する方法を参考にしました。岡崎正悟さんデバッグの仕方についてアドバイスをいただきました。本当は2つのdoループの組み合わせで綺麗にまとめたかったのですが、なぜかdoループの外に引数が引き継ぐことができないという現象が発生し、dの値を書き起こせないでいました。これについてTAさんとも相談したものの、原因を突き止められなかったため、doループ内に条件を設けて、最後のデータを読み終わった時、ループ内でdの値を書き起こしてしまうような構造に、大きく書き換えました。うるう年の場合(day=366)とそうでない場合(day=365)で書き起こすタイミングが変わるため、どうしたものかと思いましたが、その年の日数をawkで呼び出すという思いつきのおかげで、スッキリとはしないものの、なんとか書き上げることができました。シェルを別のディレクトリに移動させなければ動かなかったのですが、内部でファイルの場所を指定する修正を加えたことによって、この手間を省きました。