CTYPE html PUBLIC "-//W3C//DTD XhTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ITPASS 実習レポート 1

ITPASS 実習レポート 1

                         名前 : 中坊孝司

                  担当情報実験機 : joho05

問 1

スクリプトの URL

http://itpass.scitec.kobe-u.ac.jp/~tyubo/report01/script/quiz1.sh.txt

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


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

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

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

・二つ目のdirectory?で転送先のディレクトリを指定

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

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

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

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

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

実行結果へのリンク

http://itpass.scitec.kobe-u.ac.jp/~tyubo/report01/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 等の基本的なコマンドについて参考にしました。

共同作業した人の名前


・金藤さん

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

・松倉匡司

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

工夫したこと, 感想


・自分がどのディレクトリにいて、コマンド実行中にどこに移動しているかを常に意識するようにしました。

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

問 2

スクリプトの URL

http://itpass.scitec.kobe-u.ac.jp/~tyubo/report01/script/quiz2.sh.txt

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


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

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

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

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

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

実行結果へのリンク

http://itpass.scitec.kobe-u.ac.jp/~tyubo/report01/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"  日 月 火 水 木 金 土

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

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

・最初の一週間以外は7で割った余りの数値ごとで曜日を指定し、printfで出力。ただし最終週の場合だけ別途で指定しないと表示されなかったので
ifで条件を指定し表示させるように指定。

・最終的に力技で、数字を7個で改行しながら連続表示させるという方法をとった。これはツェラーの公式の解に依存しない手法なので、
解を利用すればもっと単純化できるかもしれないと思いました。