【シェル修正点】
●ヘッダー部分 ・絶対パス指定での説明追記 ●FUNCTION DEFINITION(関数定義)部分 ・ログ出力関数 →日時フォーマットの変更。 → [yy-mm-dd hh:mm:ss]となるように。 →printfの書式とメッセージ順序をを入れ替えました。 → ${LOG _DATE} ${LOG_TYPE} ${MSG} となるように。 ・引数確認関数 →第1引数のみの場合でも、動作するように前提条件の変更 →引数がブランクの場合でも処理が進む為、test -z のチェックを入れて、異常終了するように修正 ●MAIN部分 ・可読性向上の為の修正 →関数呼び出し、処理開始メッセージ、戻り値での分岐処理のみにし、それ以外は関数部分へ移動 異常終了時、処理終了時のメッセージを関数部分の戻り値から判断して受け取るように変更 ●備考 シェルスクリプトを開いた時には余計な部分が削ぎ落とされ、ほとんど完成していた件。。
【シェルの修正点】
●ヘッダー部分 ・使用方法(usage)を追加 ・前提条件を追加 ・見やすいように修正 ●SET PATH部分 ・RootDirは使用しないため削除 ・DAMMY_LISTも削除 ・変数PWDを追加 → 処理の中でcdコマンドを使用しているため 処理終了後に元のディレクトリに戻るために使用 ●FUNCTION DEFINITION(関数定義)部分 ・LOG_LV_W="[INFO]" を LOG_LV_I="[INFO]" に変更 →WはWarningの意味だよね? ▶︎そうそう、WarningはINFOに変更ってことですね。 ・func_logMessage関数を修正 →使用方法:func_logMessage (LOG_TYPE) (MSG) LOG_TYPE:start or end or (その他) MSG :ログファイルに書き込みたいメッセージ ※ 毎回ログファイルの中身をクリアして書き込む仕様にすると、昨日話していたけど、 追記していく形にしてもサイズが膨大に肥大するわけではないし、通常は追記していく ものなので追記する仕様にしました。 ●MAIN部分 ・初めの色々なチェック処理の部分を変更 ・なるべくif文はシンプルになるように(入れ子が深くならないように)作成する ・各チェックでひっかかったらexitコマンドで処理を終了する → 今回は異常終了のリターンコードはどの処理も共通で1としました ・後半のディレクトリ作成、ファイル作成部分 ・mkdir用、touch用に1次ファイル(リストファイル)を作成し利用する仕様にしました ・作成に失敗したらログに追記し、処理は終了せずに次のディレクトリやファイル作成を続ける仕様にしました ・作成に失敗したらNG_FLAG変数に1を代入する ・全てのループ処理が終了したら、処理全体の結果をNG_FLAGから判断する (0ならば正常終了、1ならば異常終了) ・後処理部分 ・mkdir用、touch用に1次ファイル(リストファイル)を削除 (あとで確認するために消さずに残しておいてもよいと思います) ・cdコマンドで移動しているので、初めにいたディレクトリに戻る ●備考 実行する際は、ログファイルの出力先だけ修正して実行するだけです 一応簡単にUTを実施して、ちゃんと動くことを確認しました。 (が、全ケースをテストしたわけではありません)