Mailinglist Archive: opensuse-de (1184 mails)
| < Previous | Next > |
Re: OT: mit Skript (Perl, bash) einen Ton ausgeben ohne geöffnete Shell (als at-Job)
- From: David Haller <lists@xxxxxxxxxx>
- Date: Mon, 20 Aug 2007 22:35:04 +0200
- Message-id: <20070820203504.GD3307@feersum.endjinn.de>
Hallo,
Am Mon, 20 Aug 2007, Timothy Kesten schrieb:
In der bash:
beep -r 4
Siehe 'man beep'.
Sollte sich selber ein Terminal schnappen (bzw. AFAIK nimmt es
'/dev/console', bei Problemen also dessen Rechte prüfen).
In Perl:
====
#!/usr/bin/perl -w
use strict;
use Time::HiRes;
open(T, ">/dev/console") or die "$!\n";
for(1..4) { print T "\a\n"; Time::HiRes::sleep(0.5); }
close(T) or die "$!\n";
====
zum 'sleep' siehe 'perldoc Time::HiRes', das CORE::sleep kann nämlich
nur ganze Sekunden. Alternativ 'usleep' verwenden:
Time::HiRes::usleep(500000);
Die Funktionen von Time::HiRes kann man natürlich auch importieren,
hier hielt ich's so für sinnvoller.
-dnh
--
Ich habe da eine Theorie: Betriebssysteme melden Fehler und wollen,
dass sie behoben werden. Bei Systemen wie Windows 9x sind die
Fehler wesentlicher Bestandteil und kein Grund, sich Sorgen zu
machen. -- Steffen Lauterkorn
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx
Am Mon, 20 Aug 2007, Timothy Kesten schrieb:
da hier auch schon des öfteren Perl-Fragen beantwortet wurden,
versuche ich es auch einmal. Ich möchte per atd ein Skript laufen
lassen, welches unter anderem auch 4 x "beep" ;-) machen soll. Das
Skript selbst klappt ganz gut. Und wird es in einer shell ausgeführt,
"beept" der Rechner auch. Nur eben als "at-Job" nicht nicht :-(
In der bash:
beep -r 4
Siehe 'man beep'.
Sollte sich selber ein Terminal schnappen (bzw. AFAIK nimmt es
'/dev/console', bei Problemen also dessen Rechte prüfen).
In Perl:
====
#!/usr/bin/perl -w
use strict;
use Time::HiRes;
open(T, ">/dev/console") or die "$!\n";
for(1..4) { print T "\a\n"; Time::HiRes::sleep(0.5); }
close(T) or die "$!\n";
====
zum 'sleep' siehe 'perldoc Time::HiRes', das CORE::sleep kann nämlich
nur ganze Sekunden. Alternativ 'usleep' verwenden:
Time::HiRes::usleep(500000);
Die Funktionen von Time::HiRes kann man natürlich auch importieren,
hier hielt ich's so für sinnvoller.
-dnh
--
Ich habe da eine Theorie: Betriebssysteme melden Fehler und wollen,
dass sie behoben werden. Bei Systemen wie Windows 9x sind die
Fehler wesentlicher Bestandteil und kein Grund, sich Sorgen zu
machen. -- Steffen Lauterkorn
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx
| < Previous | Next > |