2

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

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

Сценарий:

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

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

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

Может быть, может быть какой-то параметр

mytool -обед 2

«Осталось 0 часов. Иди домой! (пришел в 8:00, 2 часа перерыв на обед). "

Уже есть что-нибудь простое?

Должен работать на Linux, COmmandline, может быть, просто на скрипте bash или python.

РЕДАКТИРОВАТЬ: Решение от Акира - спасибо!

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

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

1 ответ1

3

bash (поместите в ваш ~/.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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .