Was ist eine gute Möglichkeit, auf einer Shell zu sagen, dass dies nach 15 Minuten ausgeführt werden soll?


7

ich benutze das

sleep 900; <command>

auf meiner Schale. Ich wollte nur wissen, ob es einen alternativen / besseren Weg gibt, den Sie verwenden.


4
Sie können dies tun sleep 15m && command, wenn Sie es abbrechen möchten, können Sie ctrl-ces (Ihre Version würde den Befehl ausführen, wenn Sie ctrl-ces tun ).
OneOfOne

@OneOfOne Ich weiß nicht, ob es sich um eine Shell oder etwas anderes handelt, aber ich habe noch nie gesehen, dass Strg + C so durchgefallen ist. es bricht die gesamte Linie ab
Michael Mrozek

@ Michael Ich hätte schwören können, dass es das mit älteren Bash gemacht hat, ich habe es nur versucht und es nicht, also ignoriere meinen Kommentar
OneOfOne

1
@OneOfOne: Es hat bis zu 3.x geschlagen; Das ist in Bash 4 behoben.
Gilles 'SO - hör auf böse zu sein'

Antworten:


23

Sie suchen at( bei @ wikipedia )?

usr@srv % at now + 15 min
at> YOUR COMMAND HERE

Sie können mehrere Befehle definieren, die in 15 Minuten ausgeführt werden sollen. trenne sie mit einer Rückgabe.
Bestätigen Sie alle Befehle mit control+d.


4

Ich verwende ein kurzes Skript, das ich auf meinem Pfad behalte und das nachher benannt ist und das enthält

at now + "$@"

Auf diese Weise können Sie beispielsweise ganz einfach Folgendes eingeben:

after 15 min

dann alle Befehle und Strg-D oder

echo COMMANDS | after 15 min

das macht das gleiche.


4
Vielleicht möchten Sie "$@"statt $*- dann werden Argumente, die Leerzeichen enthalten, richtig zitiert werden
Glenn Jackman

Danke für den Tipp. Ich habe meine Antwort entsprechend bearbeitet. Ich denke, es ändert nichts im Kontext des at- Befehls, aber es ist definitiv eine bessere Standardpraxis.
Dalker

2
Sie müssen die Anführungszeichen verwenden: speziell "$@"nicht $@. Nur wenn zitiert, wird bash diese spezielle Erweiterung durchführen: gnu.org/software/bash/manual/bashref.html#Special-Parameters
Glenn Jackman

@glenn, entsprechend überarbeitet. Danke für den Tipp, das wusste ich nicht!
Dalker
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.