Вычисление рабочего времени на основе системного времени работы

Я знаю несколько инструментов, которые позволяют отслеживать время, тратят на различные задачи / проекты.

Есть ли любой существующий инструмент для очень очень упрощенного отслеживания рабочего времени.

Сценарий:

Я - сотрудник, приезжайте в офис, включите мой ноутбук непосредственно. У меня есть главным образом ланч приблизительно 1 часа, но иногда меньше, иногда больше.

Около 18:00 я хочу ввести одну команду в консоли (или простой GUI также был бы хорошо, конечно), который говорит мне:

"1 час переутомлен. Пойдите домой теперь! (прибыл в 8:00, обеденный перерыв стандарта 1 часа)".

Возможно, мог быть некоторый параметр

mytool - ланч 2

"0 часов уехали. Пойдите домой теперь! (прибыл в 8:00, 2-часовой обеденный перерыв)".

Действительно ли там что-нибудь уже просто как этот?

Должен работать на Linux, Командной строке, возможно, просто сценарии Python или ударе.

Править: Решение Akira - Спасибо!

$ mytool 2 | figlet
               _                            
  __ _  ___   | |__   ___  _ __ ___   ___   
 / _` |/ _ \  | '_ \ / _ \| '_ ` _ \ / _ \  
| (_| | (_) | | | | | (_) | | | | | |  __/_ 
 \__, |\___/  |_| |_|\___/|_| |_| |_|\___(_)
 |___/                                      
                        _              __________  __   
  _____   _____ _ __ __| |_   _  ___  |___ /___ / / /_  
 / _ \ \ / / _ \ '__/ _` | | | |/ _ \   |_ \ |_ \| '_ \ 
| (_) \ V /  __/ | | (_| | |_| |  __/  ___) |__) | (_) |
 \___/ \_/ \___|_|  \__,_|\__,_|\___| |____/____/ \___/ 

                              _       
 ___  ___  ___ ___  _ __   __| |___   
/ __|/ _ \/ __/ _ \| '_ \ / _` / __|  
\__ \  __/ (_| (_) | | | | (_| \__ \_ 
|___/\___|\___\___/|_| |_|\__,_|___(_)

2
задан 28.07.2010, 18:12

1 ответ

удар (помещенный в Ваш ~/.bashrc):

function mytool() {

    # ${1-0} means: take the first argument or assume 0 if 
    # no argument was given

    MAX="$(( (8 + ${1-0}) * 3600))" # $1 carries additional hours
    UP=`cat /proc/uptime | sed 's/\..*//'`

    if (( $UP > $MAX ))
    then
        echo "go home. overdue $(( $UP - $MAX )) seconds."
    fi
}

просто назовите его как mytool 2.

или.. awk (просто ради удовольствия):

awk -v lunch=2 'BEGIN { max=(8 + lunch) * 3600;} { if ($1 > $max) print "overdue " ($1 - max) / 3600.0 " hours"; }' /proc/uptime
3
ответ дан 08.12.2019, 07:32

Теги

Похожие вопросы