問1 ファイルの自動転送
* シェルスクリプト
・scripts/quiz1.sh.txt
* 内容
あるディレクトリの複数のファイルを転送する時、利用権限を変える必要があります。そのような時複数のファイルに対し同じ
処理を何度も行うのは大変なので、これは利用権限を自動的に変更して処理をおこなうようにまとめられたスクリプトです。
* スクリプト使い方と説明
1.上記のスクリプトの拡張子を.txtから.shに変えてください。
2.転送元のディレクトリと転送先のディレクトリの名をスペースを空けて続けて入力し実行する。
すると、転送元のファイルとスクリプトは利用権限が775、つまりユーザーとグル-プの人は全ての権限がありそれ以外の人は読み込みと実行のみが可能となる。
また、それ以外のファイルに関しては利用権限が664になり、ユーザーとグループの人は読み込みと書き込みが、
それ以外の人は読み込みのみ可能となり,転送先のディレクトリに転送されていきます。
* 実行結果
・results/quiz1.txt
* 修正後
パーミッションが変わっているのがちゃんと確認できました。
変更前のスクリプトでは for 文の後、if 文でディレクトリとスクリプトを775、それ以外を664としていました。
しかし、その文のみでは移したいディレクトリのすぐ下にあるもののパーミッションしか変わらず、中のディレクトリやスクリプト、ファイルのパーミッションがかわっていませんでした。
この修正後では find , exec というコマンドを教えてもらい修正することができました。ありがとうございます。
また、 tree -p のコマンドのおかげでパーミッションや移った状況もわかりやすくなりました。
* 参考資料
・シェルスクリプト if などの条件文の作成の際参考にしました。
・最低限 UNIX 利用権限について調べました。
・UNIX コマンド ここでもコマンドの説明、主に find の使い方についてみました。
* 共同作業した人
津田 彰子 さん
小倉 匠真 君
* 感想
スクリプト自体は課題2よりもだいぶ短かったのですが、内容の理解についてはこちらの方が難しかったです。
ただ、今回の課題でパーミッションについて少しわかったし、 ../ とかが使えるようになり、ディレクトリの移動とかが前よりはスムーズに行えるようになったと思います。
また、相対パスや絶対パスの使い分けがまだよくわからないのでもう少し頑張りたいです。
問2 カレンダー作成
* シェルスクリプト
scripts/quiz2.sh.txt
* 内容
指定された年月のカレンダーを表示します。
* スクリプトの使い方説明
1.このスクリプトの拡張子を.txtから.shに変更してください。
2.見たい年月をスペースを空けて続けて入力し実行します。
するとツェラーの公式によって導かれた曜日に対して日時が入り、カレンダーとして表示されます。
* 実行結果
results/quiz2.txt
* 修正後
修正後、うまくいきました。
修正前はどの月においても30日まで表示されるようになってしまっていました。
"="と"-eq"の使い方が間違っており、"="を使用していたため if 文が作用していませんでした。
"-eq"に訂正後はちゃんとできたと思います。
また、閏年の計算も間違っており、計算方法を変え表示されるようになりました。
* 参考資料
・ITpro UNIX のコマンドの説明、使い方を参考にしました。
・曜日計算 ツェラーの公式の使い方について参考にさせてもらいました。
・wikiペディア ツェラーの公式を参考にしました。
・シェルスクリプト入門 [演算・比較] 数値比較、算術演算子について使い方を調べました。
・竹内君のホームページ printf の使い方を参考にさせてもらいました。
* 共同作業した人
津田 彰子 さん
松倉 匡志 君
竹内 英彦 君
* 感想
パソコンの用語に慣れておらずはじめからすごく苦労しました。
とてもたくさんの人やTAさんに助けてもらいました。本当にありがとうございます。
カレンダーの形を作るのに本当に苦労し、いろいろ例を見ましたがprintfの使い方が難しかったです。
また、文の順番や間が空いているなど、なかなか気付かないところでミスが連続し、プログラムが成り立たず、難しいと感じました。
ただ、苦労はしましたが少しコマンドの使い方はわかったような気がするのでよかったです。
 
|