Archief - hoe xx milliseconden wachten in bash-script

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Dr. Doezel

Legacy Member
Hoi,

Ik ben een bash-script aan het schrijven.

Welk commando kan ik gebruiken om bv 50ms te wachten?
Sleep werkt enkel met gehele seconden, en kan ik dus niet gebruiken :(

Yank

Legacy Member
Foezjie zei:
Sleep werkt enkel met gehele seconden

Werkt dus niet. Maar mijne zou moeten gaan normaal gezien
in een batch script mss, maar bij bash gaat dat wat moeilijker gaan.

bij mijn ubuntu server werkt de sleep wel met floats, maar bij de help staat wel vermeld dat er vaak implementaties zijn die enkel met integers werken.

Zir0h

Legacy Member
In sleep (GNU coreutils) 8.4 kan ik met floats werken ze. Welke versie gebruikt gij?

//edit: te laat

Tyfius

Legacy Member
Foezjie zei:
Sleep werkt enkel met gehele seconden

Werkt dus niet. Maar mijne zou moeten gaan normaal gezien
*peut* Onder Windows misschien wel, maar dan zit ge in het verkeerde sub-forum.
Code:
jensen@atlantis:~/Desktop$ sleep -m 500
sleep: invalid option -- 'm'
Try `sleep --help' for more information.

Zoals Lord Kveldulv aangaf werken komma getallen wel.

man sleep zegt:
SLEEP(1) User Commands SLEEP(1)

NAME
sleep - delay for a specified amount of time

SYNOPSIS
sleep NUMBER[SUFFIX]...
sleep OPTION

DESCRIPTION
Pause for NUMBER seconds. SUFFIX may be `s' for seconds (the default), `m' for minutes, `h' for hours or `d' for days. Unlike most implementations that require NUMBER be an integer, here NUM‐
BER may be an arbitrary floating point number. Given two or more arguments, pause for the amount of time specified by the sum of their values.

Dr. Doezel

Legacy Member
Ow, mijn excuses, sleep werkt dus wel met kommagetallen. Het was ergens anders dat het mis liep, namelijk bij het vermenigvuldigen van de kommagetallen.

Dit werkt dus wel:
Code:
#!/bin/bash
sec=0.01
	while [ ! -f bar.txt ] ; do 
	 	sleep $sec
		echo Het aantal seconden is $sec
		sec=`awk 'BEGIN{printf("%0.2f", '$sec' * 2)}'`
	done

Toch bedankt :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan