sleep (feiner als sekunde)
sleep (feiner als sekunde)
Gibt es irgendeine Möglichkeit in einem Script die Ausführung einer Aktion anders als mit sleep zeitlich zu steuern. Anders als mit sleep weil sleep minimal nur sekunden kann, ich aber mindestens im Bereich von 1/10s , besser mit ungefähr 1/100s verzögern möchte (im realen Ergebnis muss das nicht 1/100 sein, aber eben möglichst besser als 1/10s).
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: sleep (feiner als sekunde)
Mal die Manpage zu sleep gelesen?michaa7 hat geschrieben:02.01.2021 19:54:15Anders als mit sleep weil sleep minimal nur sekunden kann...
Re: sleep (feiner als sekunde)
Das übliche sleep aus coreutils versteht auch x-telsekunden:
Code: Alles auswählen
~$ sleep 0.1
~$ sleep 0.5
~$ sleep 0.01
man sleep hat geschrieben: Pause for NUMBER seconds. […] NUMBER need not be an integer.
Manchmal bekannt als Just (another) Terminal Hacker.
Re: sleep (feiner als sekunde)
Ich weiß jetzt zwar nicht in welcher script / sprogrammiersprache usw.
In der Regel gibt es aber "sleep" funktionen auch in 'microtime'.
In der Regel gibt es aber "sleep" funktionen auch in 'microtime'.
Re: sleep (feiner als sekunde)
Zumindest soweit ich lese scheint das doch mit sleep und bash zu funktionieren.
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: sleep (feiner als sekunde)
logo, die sagen aber dazu nichts
Hier gibt es aber etwas:
info '(coreutils) sleep invocation'
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: sleep (feiner als sekunde)
Wie, die sagt dazu nichts?
Und damit geifen dann z.B. die Beispiele, wie sie JTH darüber gezeigt hat...man sleep hat geschrieben: Unlike most implementations that require NUMBER be an integer, here NUMBER may be an arbitrary floating point number.
Re: sleep (feiner als sekunde)
Wie oben schon zitiert doch schon:
https://manpages.debian.org/buster/manpages-de/sleep.1.de.html hat geschrieben: Für ANZAHL Sekunden pausieren. […] kann ANZAHL hier eine beliebige Gleitkommazahl sein.
Manchmal bekannt als Just (another) Terminal Hacker.
Re: sleep (feiner als sekunde)
Naja, zunächst sind manpages das, was ein paket auf meinem rechner installiert und dann per "man <paketname> erreichbar ist. Und da seht:
Aber wir sind uns nun einig, es geht eben auch im subkomma bereich.BESCHREIBUNG
Für ANZAHL Sekunden pausieren. SUFFIX kann sein: »s« für Sekunden (Vorgabe), »m«
für Minuten, »h« für Stunden oder »d« für Tage. ANZAHL muss eine Ganzzahl sein.
Werden zwei oder mehr Argumente angegeben, wird für eine Zeit pausiert, die der
Summe der Werte entspricht.
--help zeigt Hilfeinformationen an und beendet das Programm.
--version
gibt Versionsinformationen aus und beendet das Programm.
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: sleep (feiner als sekunde)
Das ist ein Ausschnitt deiner Manpage zu sleep (Buster?) und du kannst trotzdem eine Kommazahl verarbeiten lassen?
Ok, meine Manpage ist noch von Stretch und ich bin fälschlicherweise davon ausgegangen, dass sie auch in Buster Gültigkeit hätte!?
Ok, meine Manpage ist noch von Stretch und ich bin fälschlicherweise davon ausgegangen, dass sie auch in Buster Gültigkeit hätte!?
man -Lde sleep hat geschrieben: Für ANZAHL Sekunden pausieren. SUFFIX kann sein: »s« für Sekunden (Vorgabe), »m« für Minuten, »h« für Stunden oder »d« für Tage. Im Gegensatz zu den meisten Implementierungen, die ANZAHL als eine ganze Zahl erfordern, kann ANZAHL hier eine beliebige Gleitkommazahl sein. Werden zwei oder mehr Argumente angegeben, wird für eine Zeit pausiert, die der Summe der Werte entspricht.
Re: sleep (feiner als sekunde)
Die oben verlinkte manpage ist die aus Buster, tobo, und bei mir unter Sid werden auch die unterstützten Gleitkommazahlen erwähnt.
Dann sorry für die Scheuklappen – aus welchem Debian-Release oder anderen Distri stammt denn deine manpage, Michaa?
Dann sorry für die Scheuklappen – aus welchem Debian-Release oder anderen Distri stammt denn deine manpage, Michaa?
Manchmal bekannt als Just (another) Terminal Hacker.
Re: sleep (feiner als sekunde)
Stimmt, kann man ja auch dem Link entnehmen. Diesen Link könnte man dann auch noch bis wheezy "zurückdatieren", ohne dass sich am Ergebnis was ändert. Stellt sich somit die Frage, was michaa7 benutzt?!
Re: sleep (feiner als sekunde)
Ich fahre Debian/sid(uction), das sind bis auf den Kernel und temporäre fixe pure debian/sid pakete, und bei Bedarf kann ich jederzeit den neuesten Debian Kernel zum testen booten weil der mitinstalliert ist.
Es gibt in der manpage von sleep hier auf dem system einen hinweis auf zusätzliche infoseiten:
Dort ist dann zu lesen:
Irgendwie ginge das also, aber ob es ***bei mir*** nun tatsächlich geht weiß ich nicht genau. Allerdings funktioniert das folgende script:
Daher denke ich "es geht".
EDIT:
AHHHH, da kommt licht ins Dunkel: bei mir ist "sleep" gar nicht installiert, sondern coreutils welches ein "sleep" mit sich bringt.Was dann da als manpages installiert wurde scheint mir eigentlich ein bug.
Es gibt in der manpage von sleep hier auf dem system einen hinweis auf zusätzliche infoseiten:
Code: Alles auswählen
info '(coreutils) sleep invocation'
Und auch im Netz fand ich einiges was besagte, dass die sleep - funktion in der bash (nicht in sh!) in einen modus versetzt werden kann, der millisekunden unterstützt. Das muß(te?) aber im bash profil erledigt werden. Später habe ich irgendwo im Netz gelesen, dass es mittlerweile in allen neueren version standard wäre, die manpages widersprechen dem natürlich.Although portable POSIX scripts must give ‘sleep’ a single
non-negative integer argument without a suffix, GNU ‘sleep’ also accepts
two or more arguments, unit suffixes, and floating-point numbers in
either the current or the C locale. *Note Floating point::.
For instance, the following could be used to ‘sleep’ for 1 second,
234 milli-, 567 micro- and 890 nanoseconds:
sleep 1234e-3 567.89e-6
Irgendwie ginge das also, aber ob es ***bei mir*** nun tatsächlich geht weiß ich nicht genau. Allerdings funktioniert das folgende script:
Wenn sleep "2.366" nicht verstehen würde sollte eigentlich das script hängen oder abbrechen? Nicht?#!/bin/bash
sleep 2.366
cvlc '<ein-file>.mkv'
Daher denke ich "es geht".
EDIT:
AHHHH, da kommt licht ins Dunkel: bei mir ist "sleep" gar nicht installiert, sondern coreutils welches ein "sleep" mit sich bringt.Was dann da als manpages installiert wurde scheint mir eigentlich ein bug.
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: sleep (feiner als sekunde)
Ok - deine Ausgabe oben deckt sich sich dann mit dem hier:
https://manpages.debian.org/unstable/ma ... .1.de.html
Das Infosystem ist eigentlich nicht sonderlich benutzbar!?Es gibt in der manpage von sleep hier auf dem system einen hinweis auf zusätzliche infoseiten:Code: Alles auswählen
info '(coreutils) sleep invocation'
Und steht damit in direktem Widerspruch zu deiner Manpage?!Dort ist dann zu lesen:Although portable POSIX scripts must give ‘sleep’ a single
non-negative integer argument without a suffix, GNU ‘sleep’ also accepts
two or more arguments, unit suffixes, and floating-point numbers in
either the current or the C locale. *Note Floating point::.
For instance, the following could be used to ‘sleep’ for 1 second,
234 milli-, 567 micro- and 890 nanoseconds:
sleep 1234e-3 567.89e-6
Sleep ist keine Funktion, sondern ein Programm. Funktionen sind shell-übergreifend, lediglich muss die jeweilige Shell-Implementierung angepasst werden. Was du vielleicht meinst sind Shell-Builtins!? Aber auch das triff hier nicht zu:Und auch im Netz fand ich einiges was besagte, dass die sleep - funktion in der bash (nicht in sh!)[...]
Code: Alles auswählen
$ type echo
echo is a shell builtin
$ type sleep
sleep is /bin/sleep
$
Das glaube ich so nicht!? Erstens würde man das so nicht programmieren und zweitens wäre das Programm dann abhängig von der Bash!?[...]in einen modus versetzt werden kann, der millisekunden unterstützt. Das muß(te?) aber im bash profil erledigt werden.
Die von Debian ja offensichtlich nicht! Sid ist hier kein Maßstab, das ist sid!Später habe ich irgendwo im Netz gelesen, dass es mittlerweile in allen neueren version standard wäre, die manpages widersprechen dem natürlich.
Hängt von der Implementierung von sleep ab - das Programm würde wohl eine Meldung ausgeben. Unter Heirloom z.B.:Irgendwie ginge das also, aber ob es ***bei mir*** nun tatsächlich geht weiß ich nicht genau. Allerdings funktioniert das folgende script:Wenn sleep "2.366" nicht verstehen würde sollte eigentlich das script hängen oder abbrechen? Nicht?#!/bin/bash
sleep 2.366
cvlc '<ein-file>.mkv'
Code: Alles auswählen
$ sleep 2.366
sleep: bad character in argument
Re: sleep (feiner als sekunde)
Gut, zanken wir uns ein bissl ..
Und "hier" as in "bei michaa7" ist es auch "sleep ist /bin/sleep". das änder nur nichts am gelesenen.
Und was Heirloom ist ... kein plan.
n8
Hast du auch sid installiert. info ist auch nicht schlechter als man. In diesem Fall war da mehr zu lesen als unter man ...tobo hat geschrieben:03.01.2021 00:23:41Das Infosystem ist eigentlich nicht sonderlich benutzbar!?
Meine Rede (bug)tobo hat geschrieben:03.01.2021 00:23:41Und steht damit in direktem Widerspruch zu deiner Manpage?!
Gut, meine Ungenauigkeit ...
Hier (wo auch immer das ist) vielleicht nicht, aber dort wo ich gelesen hatte schon ... ich suche es jetzt nicht nochmal raus.tobo hat geschrieben:03.01.2021 00:23:41Was du vielleicht meinst sind Shell-Builtins!? Aber auch das triff hier nicht zu:
Und "hier" as in "bei michaa7" ist es auch "sleep ist /bin/sleep". das änder nur nichts am gelesenen.
Naja, Sid ist auch Debian, und ich wüßte schon gern wieviel siderfahrung du hast um so kerniges in die welt zu setzen. Ist halt ein bug, in DEBIAN/sid. Hamwa doch geklärt.tobo hat geschrieben:03.01.2021 00:23:41Die von Debian ja offensichtlich nicht! Sid ist hier kein Maßstab, das ist sid!
Und was Heirloom ist ... kein plan.
n8
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: sleep (feiner als sekunde)
Ich muss nicht sid installieren, damit ich weiterhin hinter meine Aussage stehe, welche nicht behauptete, dass es im Info-System keine Informationen gäbe, sondern dass das nicht sonderlich benutzbar sei!michaa7 hat geschrieben:03.01.2021 00:42:13Hast du auch sid installiert. info ist auch nicht schlechter als man. In diesem Fall war da mehr zu lesen als unter man ...
Du musst da nichts raussuchen - "Hier" bezieht sich bei sleep auf bash vs. sh und das ist in allen Fällen (Funktion, Programm, Builtin), aus unterschiedlichen Gründen, falsch!Hier (wo auch immer das ist) vielleicht nicht, aber dort wo ich gelesen hatte schon ... ich suche es jetzt nicht nochmal raus.
Absolut null Sid-Erfahrung, und doch ist das Debian-Allgemeinwissen! Sid ist Spielwiese und wer die nicht versteht oder zu händeln weiß, der sollte Stable benutzen!?Naja, Sid ist auch Debian, und ich wüßte schon gern wieviel siderfahrung du hast um so kerniges in die welt zu setzen.
Heirloom ist der Kehrwert von sid.Und was heidroom ist ... kein plan.
Re: sleep (feiner als sekunde)
Ein Erbstück. In den 00ern konnte man tatsächlich mal ein sleep installieren, dass nur ganze zahlen schluckte. Ist aber selbst in oldoldstable Geschichte.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: sleep (feiner als sekunde)
Btw. ist das ganze ein bisschen Humbug: Linux+Bash brauchen (idle) eh mindestens eine ms um ein Kommando auszuführen. Wenns dumm läuft auch mal 5ms. Im Schnitt sind es eher so 1.5ms. Dazu kommt nochmal sleep dass je nach prozessortakt nochmal ~0.5ms genehmigt bevor es mit zählen anfängt. (Argumente lesen.) (Btw. echt dämlich, das könnte sleep messen und entsprechend kürzer schlafen.) Selbst wenn du also sauber die ~2ms für sleep abziehst und weißt wie lange das Kommando nach und vor dir braucht schwankt dein Konstrukt mit sleep immer noch um ~4ms selbst wenn du wegforkst und die Laufzeit aller anderen Kommandos rausrechnest.
Da angaben auf ns genau zu machen...
Da angaben auf ns genau zu machen...
rot: Moderator wanne spricht, default: User wanne spricht.
Re: sleep (feiner als sekunde)
Ah, die "ich weiß zwar ned, aber es war schon immer so"-Fraktion grüßt hier.tobo hat geschrieben:03.01.2021 00:58:14Absolut null Sid-Erfahrung, und doch ist das Debian-Allgemeinwissen!
Also ich nutze sid seit mehr als einem Jahrzehnt produktiv, ausschließlich. Ein Glück dass ich es zu händeln weiß. Und das wird auch durch einen Bug in den Manpages nicht anders.tobo hat geschrieben:03.01.2021 00:58:14Sid ist Spielwiese und wer die nicht versteht oder zu händeln weiß,
Anders gesagt: Man wird ja wohl noch fragen dürfen
Nää, stabel is für Warmduscher die morgens ihr Hörnchen in den Kaffee tauchen (müssen).
Übrigens, ich dusche auch warm, aber nutze trotzdem kein stable ...
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: sleep (feiner als sekunde)
Darum ging es nie, schon gar nicht um ns. Es geht darum möglichst viel besser als 1/10 sec zu sein ... und wenn es dann also möglich ist das Rauschen in der bash möglichst gering zu halten, dann ist das zu diesem Zweck schon hilfreich.
Wenn nicht sec, dann ist es eben häufig so, dass software ms als kleinste Einheit anbietet. Und da cnee, was ich zum Aufzeichen von mausklicks nutze standardmäßig ms nutzt nutze ich ms als Basisgröße. Ich möchte eben nicht all die Fehler die zwangläufig in dem ganzen Konstrukt enthalten sein werden nicht *bei jedem einzelnen Vorkommen* noch zusätzlich nach oben aufrunden.
Ansonsten bin ich jedem dankbar, der mir bei meinem Vorhaben hilft.
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: sleep (feiner als sekunde)
Sag mal, hast du inhaltlich auch nur ansatzweise irgendwas verstanden, was ich dir geschrieben habe?
Re: sleep (feiner als sekunde)
Ich verstehe deine ganze gereiztheit nicht, für die ich auch keinen anlaß geboten habe.
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: sleep (feiner als sekunde)
Für eine ms kann man aber auch locker 0.001s schreiben. Exponentialschreibweise ist da IMHO ein bisschen Overkill noch lustiger fand ich die info-Page, die gleich mal ein Beispiel für ns bringt.michaa7 hat geschrieben:03.01.2021 14:03:30Darum ging es nie, schon gar nicht um ns. Es geht darum möglichst viel besser als 1/10 sec zu sein ... und wenn es dann also möglich ist das Rauschen in der bash möglichst gering zu halten, dann ist das zu diesem Zweck schon hilfreich.
rot: Moderator wanne spricht, default: User wanne spricht.
Re: sleep (feiner als sekunde)
Och menno ... jetzt argumentierst auch du noch neben der spur. Das war doch wohl A++++klar dass dies ganze gewaschel von ns, micros etc nur *zitiert* wurde weil es missverständnisse und ungereimheiten bezüglich verschiedener manpages gab. Und das sollte doch nur zeigen: die eine sleep version kann nur s, die andere kanns viel feiner, und im ergebnis wurde klar dass es da in Debian/sid eine inkonsistente manpage installation gibt.wanne hat geschrieben:03.01.2021 21:10:28...Für eine ms kann man aber auch locker 0.001s schreiben. Exponentialschreibweise ist da IMHO ein bisschen Overkill noch lustiger fand ich die info-Page, die gleich mal ein Beispiel für ns bringt.
Nirgends stand dass ich im micro oder ns bereich scripten wollte ...
gruß
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
michaa7
-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)
Re: sleep (feiner als sekunde)
Ich wollte ja nur verhindern, dass jemand auf dumme Ideen kommt, wenn er das so ließt.michaa7 hat geschrieben:04.01.2021 00:00:18Och menno ... jetzt argumentierst auch du noch neben der spur. […] Nirgends stand dass ich im micro oder ns bereich scripten wollte ...
rot: Moderator wanne spricht, default: User wanne spricht.