日報はスクリプトで書こう。 / Cygwin-bash

| | コメント(0) | トラックバック(0)
偽装派遣なら、日報は必須だと思います。
で、日報ってのはめんどくさいです。
だからこそ定型部分は Cygwin なりでぱーっとスクリプトにやらせちゃいましょう。
本当はRubyの方が楽ですが、bashが利用できる環境の方が多いと思ったので。

定型部は

    * 氏名
    * 日付
    * 勤務時間
    * 業務内容(ルーティン部)

などになると思います。
とりあえず僕が使っているのをアレンジして書いてみます。
ご指摘ありましたらお願いいたします。

    #!/bin/bash
    name="YN"
    working="業務内容"
    time_work="09時~18時"

上記に関してはロジックがいらないのでらくちんです。
問題は日付や曜日の部分。
"当日"を表示するのは楽です。けれどもいわゆるIT業界なら、
てっぺんを越してしまう業務の方も多いと思います。
そういった方は大抵出社時の日付、曜日で日報を提出するので、
日報作成のスクリプトを走らせるタイミング(24時過ぎ)では
日付も曜日も"翌日"のもにになってしまうことがあります。
そこをロジックで調整します。
まず、自分が朝の何時までの勤務か考えます。
残業する可能性をふくめた設定にするのがおすすめです。
今回は翌日の06時までであれば、00時(24時)から9時(33時)までに走らせたスクリプトは、
前日の日付、曜日を返すようif文をまじえて設定するようにします。
そのために現在の時刻を取得する変数も設定する必要があります。

    time=`date +"%H"`
    if ((${time} < 10)) ;then
        today1=`date --date '1 days ago' +"%y%m%d"`
        today2=`date --date '1 days ago' +"%y年%m月%d日" `
        youbi_num=`date --date '1 days ago' +"%w"`
    else
        today1=`date +"%y%m%d"`
        today2=`date +"%y年%m月%d日"`
        youbi_num=`date +"%w"`
    fi

これでOKです。

そして曜日を数字から月火水木金土の漢字形式にします。
caseが楽だと思います。

    case ${youbi_num} in
        0) youbi="日" ;;
        1) youbi="月" ;;
        2) youbi="火" ;;
        3) youbi="水" ;;
        4) youbi="木" ;;
        5) youbi="金" ;;
        6) youbi="土" ;;
     esac

あとはファイルとして出力させるだけです。

    cat <<-END > ${today1}_nippou.txt
    ${name} ${today2}(${youbi})日報
    業務時間 ${time_work}
    業務内容 ${working} END

思い出しながらやってたら結構時間かかったりして。
下記のスクリプトをデスクトップなりにおいて実行すると、
同一のディレクトリ/フォルダにyymmdd_nippou.txtが出来ます。

    $ . nippou.sh

    $ cat ./080319_nippou.txt
    YN 08年03月19日(水)日報
    業務時間 09時~18時
    業務内容 業務内容はここ

という感じ。


    #!/bin/bash
    #nippou.sh

    name='YN'
    working='業務内容はここ'
    time_work='09時~18時'

    time=`date +'%H'`
    if ((${time} < 10)) ;then
        today1=`date --date '1 days ago' +'%y%m%d'`
        today2=`date --date '1 days ago' +'%y年%m月%d日'`
        youbi_num=`date --date '1 days ago' +'%w'`
    else
        today1=`date +'%y%m%d'`
        today2=`date +'%y年%m月%d日'`
        youbi_num=`date +'%w'`
    fi

    case ${youbi_num} in
        0) youbi="日" ;;
        1) youbi="月" ;;
        2) youbi="火" ;;
        3) youbi="水" ;;
        4) youbi="木" ;;
        5) youbi="金" ;;
        6) youbi="土" ;;
    esac

    cat <<-END > ${today1}_nippou.txt
    ${name} ${today2}(${youbi})日報
    業務時間 ${time_work}
    業務内容 ${working}
    END

参考文献:

仕事に使えるLinuxシェルスクリプト~bashで作る実用サンプル41
千葉 真人
日経BP社 (2004/11/25)
売り上げランキング: 238420

トラックバック(0)

このブログ記事を参照しているブログ一覧: 日報はスクリプトで書こう。 / Cygwin-bash

このブログ記事に対するトラックバックURL: http://jippenshar.com/igc/mt/mt-tb.cgi/125

コメントする

このブログ記事について

このページは、YNが2008年3月19日 14:35に書いたブログ記事です。

ひとつ前のブログ記事は「お前の理想はどこにある? / Vista のクソ野郎」です。

次のブログ記事は「不具合 / SO702i / 液晶から全ての操作不能まで」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

フィードメーター - 十返舎.com あわせて読みたいブログパーツ
QLOOKアクセス解析
Powered by Movable Type 4.22-ja

Firefox3 Meter