Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: teller in terminal  (gelezen 712 keer)

Offline thailand

  • Lid
  • Steunpunt: Nee
teller in terminal
« Gepost op: 2017/04/07, 06:30:58 »
 Dit is een scriptje dat ik gevonden heb op internet.
 Het probleem hier is het volgende:
 Wanneer de minuten aan 60 komen dan telt hij bij de uren 1 bij,
 maar de minuten laat hij door lopen in  plaats van dat de minuten terug vanaf nul beginnen.
 Bij de seconden doet hij het wel goed.
Kan iemand dit oplossen?
dank u.
 
 #**********************
BEGIN=$(date +%s)
 
#echo Starting Stopwatch...
 
while true; do
   NOW=$(date +%s)
   let DIFF=$(($NOW - $BEGIN))
   let MINS=$(($DIFF / 60))
   let SECS=$(($DIFF % 60))
   let HOURS=$(($DIFF / 3600))
   let DAYS=$(($DIFF / 86400))
 
   # \r  is a "carriage return" - returns cursor to start of line
   printf "\r %02d:%02d:%02d" $DAYS $HOURS $MINS $SECS
   sleep 0.25
done
exit 0
#************************************

Offline Paul Matthijsse

  • Lid
  • Steunpunt: Ja
Re: teller in terminal
« Reactie #1 Gepost op: 2017/04/07, 10:22:22 »
Vreemd, bij mij lopen de seconden en gaan na de 60 weer naar de 0, zonder dat het minuutveld wordt opgehoogd.

Een script dat erg op het jouwe lijkt, doet het wel goed (ook op internet gevonden).

#!/bin/bash

BEGIN=$(date +%s)
BACK="\b\b\b\b"

echo Starting Stopwatch...

while true; do
        NOW=$(date +%s)
        let DIFF=$(($NOW - $BEGIN))
        let MINS=$(($DIFF / 60))
        let SECS=$(($DIFF % 60))

#only echo count if its different than the last time
if [ "$DIFF" != "$OLDDIFF" ]
then
        #backspace 4 times to reset stopwatch position
        #The '-e' enables \b to be interpreted correctly
        #The '-n' avoids the newline character at the end
        echo -ne $BACK
        echo -ne $MINS:`printf %02d $SECS`
fi

#define olddiff to current diff
let OLDDIFF=DIFF

done

Offline nahjo

  • Lid
  • Steunpunt: Nee
Re: teller in terminal
« Reactie #2 Gepost op: 2017/04/07, 10:47:43 »
zo loopt het bij mij goed al heb ik geen uur gewacht  ;)

#**********************
BEGIN=$(date +%s)
 
#echo Starting Stopwatch...
 
while true; do
   NOW=$(date +%s)
   let DIFF=$(($NOW - $BEGIN))
   let MINS=$((($DIFF / 60) % 60))
   let SECS=$(($DIFF % 60))
   let HOURS=$((($DIFF / 3600) % 24))
   let DAYS=$(($DIFF / 86400))
 
   # \r  is a "carriage return" - returns cursor to start of line
   printf "\r %02d:%02d:%02d:%02d" $DAYS $HOURS $MINS $SECS
   sleep 0.25
done
exit 0
#************************************
LM18.3xfce Xubuntu 18.04

Offline thailand

  • Lid
  • Steunpunt: Nee
Re: teller in terminal
« Reactie #3 Gepost op: 2017/04/07, 15:18:10 »
Dit lost het op
Ik moet bij minuten / 60 % 60 doen.
Dank u wel.
Dit is opgelost.