名前 : 中坊孝司
担当情報実験機 : joho05
script/quiz1.sh.txt
・コマンド ./quiz1.shを実行してください ・スクリプト内に cd が入っているので必ずホームディレクトリで実行してください ・一つ目のdirectory?で移動させたいファイルの入っているディレクトリを指定してください ・二つ目のdirectory?で転送先のディレクトリを指定してください ・最初に指定したディレクトリに入っているファイルのモードが変更されます ・後に指定したディレクトリにファイルはすべて移動しています ・結果はquiz1.txtに出力されています ・最後にどのディレクトリからどのディレクトリに移動したかを表示します ・移動先の ls -l がコマンドに入っているのでそこで正しく変化したか確認できます
・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の使い方を参考にさせてもらった。
・金藤さん case の使い方を参考にさせてもらいました。 ・松倉匡司 for の使い方を参考にさせてもらいました。
・出力内容にどのディレクトリからどのディレクトリに移動したかを示しました。 ・ファイル名で区別してチェンジモードできなかったので、ファイルの形式を読み込み、区別しました。 ・単にコピーするのではなく、モードを保存し、ディレクトリ内のファイルも一緒にコピーできるようにしました。 ・find とexecを使って、転送元ディレクトリ以下の階層にあるファイルのモードをチェンジできるようにした readによる読み込みから、実行時に引数として打ち込むやり方に変えた。
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 等の基本的なコマンドについて参考にしました。
・ややこしくならないように曜日だけまず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を足して、また日曜日からスタートするようにしました。 ・最終日以降は条件に合わない場合空白を入れることでクリアしました。