ITPASS 実習レポート 1

                         名前 : 中坊孝司

                  担当情報実験機 : joho05

問 1

スクリプトの URL

script/quiz1.sh.txt

スクリプトの使い方の解説


・コマンド ./quiz1.shを実行してください

・スクリプト内に cd が入っているので必ずホームディレクトリで実行してください

・一つ目のdirectory?で移動させたいファイルの入っているディレクトリを指定してください

・二つ目のdirectory?で転送先のディレクトリを指定してください

・最初に指定したディレクトリに入っているファイルのモードが変更されます

・後に指定したディレクトリにファイルはすべて移動しています

・結果はquiz1.txtに出力されています

・最後にどのディレクトリからどのディレクトリに移動したかを表示します

・移動先の ls -l がコマンドに入っているのでそこで正しく変化したか確認できます

実行結果へのリンク

result/quiz1.txt

参考資料


・itpassのスクリプト解説ページ

https://itpass.scitec.kobe-u.ac.jp/~itpass/hiki/hiki.cgi?%5BExp2010%5D%A5%B7%A5%A7%A5%EB%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8

⇒case for do 等の基本的なコマンドについて参考にしました。
津田さんのレポート
⇒find,execの使い方を参考にさせてもらった。


http://www.k4.dion.ne.jp/~mms/unix/linux_com/cp.html

⇒cpコマンドのオプションコマンドを参考にしました。

金野くんのレポート

⇒ファイル形式の読み込みに関して参考にさせてもらいました。

共同作業した人の名前


・金藤さん

case の使い方を参考にさせてもらいました。

・松倉匡司

for の使い方を参考にさせてもらいました。

工夫したこと, 感想


・出力内容にどのディレクトリからどのディレクトリに移動したかを示しました。

・ファイル名で区別してチェンジモードできなかったので、ファイルの形式を読み込み、区別しました。

・単にコピーするのではなく、モードを保存し、ディレクトリ内のファイルも一緒にコピーできるようにしました。

・find とexecを使って、転送元ディレクトリ以下の階層にあるファイルのモードをチェンジできるようにした

readによる読み込みから、実行時に引数として打ち込むやり方に変えた。

問 2

スクリプトの URL

script/quiz2.sh.txt

スクリプトの使い方の解説


・./quiz2.shを実行してください

・month?と表示されたら引き数として”何月”かを入力してください。

・year?と表示されたら引き数として”何年”かを入力してください。

・後は自動的に計算が行われ、指定した年,月のカレンダーが表示されます。

・計算結果はquiz2.txtに出力されます。

実行結果へのリンク

result/quiz2.txt

参考資料


・UNIX & Linux コマンド・シェルスクリプト リファレンス


http://www.geocities.jp/geo_sunisland/index.html

⇒printfによる出力方法の指定の仕方で非常に参考になりました。改行の仕方はここで見つけました。

・itpassのスクリプト解説ページ

https://itpass.scitec.kobe-u.ac.jp/~itpass/hiki/hiki.cgi?%5BExp2010%5D%A5%B7%A5%A7%A5%EB%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8

⇒case for do 等の基本的なコマンドについて参考にしました。

共同作業したの名前


・松倉匡司

基本的なviの使い方から、ツェラーの公式、printfの使い方、exprの使い方、テキストファイルへの出力方法
、 コメントの挿入について等様々なことを教えてもらいました。


・竹内くん
ツェラーの公式について一緒に悩んで。解決の糸口を示してくれました。

工夫したこと, 感想


・ややこしくならないように曜日だけまずprintfで表示しました。 ⇒ printf "%3s %3s %3s %3s %3s %3s %3s"  日 月 火 水 木 金 土

・単純化するため最初に年と月から、”その月が何日ある月か”を計算し、後に引き数として代入する方法をとりました。

・月の初めの一週間だけは、ツェラーの公式の解によって開始する曜日が変わってくるのでcaseで0~6まで場合分けをしました。
これはそれぞれ初日が該当する曜日までスペースを空けて、ちょうどその曜日から表示されるようにしました。
例)h=1の場合。これは月曜日から開始するので、最初の数値は月曜の下に表示されるようにprintfの条件を工夫しました。 ⇒ printf "%5d %2d %2d %2d %2d %2d" 1 2 3 4 5 6

・2週目以降はその週の日を1日ずつ足し算で作っていき、土曜日になれば7を足して、また日曜日からスタートするようにしました。

・最終日以降は条件に合わない場合空白を入れることでクリアしました。