値が変化したかどうかを判定する関数
関数名 Chk_Stat
書式 Chk_Stat 識別ID 値
目的 与えられた値に変化があるかどうかを調べる
戻り値 変化なし:0 変化あり:1 エラー9:
スクリプトの実行結果をファイルに保存しておき
前回と今回の値を比較して一致しているか調べる
Chk_Stat () { . Error_Msg.sh && . Arg_Nums.sh && . Chk_File.sh ||\ { echo "Chk_Stat: error: Function not found." 1>&2; exit 9; } Arg_Nums -eq 2 "$@" ||\ { Error_Msg ChkStat "Number of Arguments was wrong."; exit 9; } local _RECORD_DIR=/tmp local _RECORD_FILE="$_RECORD_DIR/$(BASENAME "$0")-$1.status" #値を保存するファイル・ディレクトリの作成と確認 [ -e "$_RECORD_DIR" ] || mkdir "$_RECORD_DIR" [ -e "$_RECORD_FILE" ] || touch "$_RECORD_FILE" Chk_File -rw "$_RECORD_FILE" ||\ { Error_Msg ChkStat "$_RECORD_FILE: Permission denied."; exit 9; } local _OLD_RESULT=$(cat "$_RECORD_FILE") #今回の値と前回以前の値の比較 if [ "$2" = "$_OLD_RESULT" ]; then return 0 elif [ "$2" = "" ]; then { Error_Msg Chk_Stat "Given value was blank."; exit 9; } else echo "$_OLD_RESULT" echo "$2" > "$_RECORD_FILE" return 1 fi }