aboutsummaryrefslogtreecommitdiff
path: root/bin/sleep/sleep.1
diff options
context:
space:
mode:
Diffstat (limited to 'bin/sleep/sleep.1')
-rw-r--r--bin/sleep/sleep.180
1 files changed, 39 insertions, 41 deletions
diff --git a/bin/sleep/sleep.1 b/bin/sleep/sleep.1
index 73fa4854d1a6..c9069a015706 100644
--- a/bin/sleep/sleep.1
+++ b/bin/sleep/sleep.1
@@ -29,10 +29,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" @(#)sleep.1 8.3 (Berkeley) 4/18/94
-.\" $FreeBSD$
-.\"
-.Dd May 25, 2022
+.Dd March 22, 2024
.Dt SLEEP 1
.Os
.Sh NAME
@@ -41,21 +38,26 @@
.Sh SYNOPSIS
.Nm
.Ar number Ns Op Ar unit
-.Ar ...
+.Op ...
.Sh DESCRIPTION
The
.Nm
command suspends execution for a minimum of
.Ar number
seconds (the default, or unit
-.Cm s ) ,
+.Li s ) ,
minutes (unit
-.Cm m ) ,
+.Li m ) ,
hours (unit
-.Cm h ) ,
+.Li h ) ,
or days (unit
-.Cm d ) .
-If multiple arguments are passed, the delay will be the sum of all values.
+.Li d ) .
+Intervals can be written in any form allowed by
+.Xr strtod 3 .
+If multiple intervals are given, they are added together.
+If the final sum is zero or negative,
+.Nm
+exits immediately.
.Pp
If the
.Nm
@@ -68,57 +70,49 @@ sleep is printed on the standard output.
The
.Dv SIGALRM
signal is not handled specially by this implementation.
-.Pp
-The
-.Nm
-command supports other time units than seconds,
-honors a non-integer number of time units to sleep in any form acceptable by
-.Xr strtod 3 ,
-and accepts more than one delay value.
-These are non-portable extensions, but they have also been implemented
-in GNU sh-utils since version 2.0a (released in 2002).
.Sh EXIT STATUS
.Ex -std
.Sh EXAMPLES
-To schedule the execution of a command for
-.Va x
-number seconds later (with
-.Xr csh 1 ) :
+To run a command after half an hour:
.Pp
-.Dl (sleep 1800; sh command_file >& errors)&
+.Dl (sleep 0.5h; sh command_file >out 2>err)&
.Pp
-This incantation would wait a half hour before
-running the script command_file.
-(See the
+This incantation would wait half an hour before
+running the script
+.Pa command_file .
+See the
.Xr at 1
-utility.)
+utility for another way to do this.
.Pp
-To reiteratively run a command (with the
-.Xr csh 1 ) :
+To reiteratively run a command:
.Pp
.Bd -literal -offset indent -compact
-while (1)
- if (! -r zzz.rawdata) then
- sleep 300
+while :; do
+ if ! [ -r zzz.rawdata ] ; then
+ sleep 5m
else
- foreach i (`ls *.rawdata`)
+ for i in *.rawdata ; do
sleep 70
- awk -f collapse_data $i >> results
- end
+ awk -f collapse_data "$i"
+ done >results
break
- endif
-end
+ fi
+done
.Ed
.Pp
The scenario for a script such as this might be: a program currently
running is taking longer than expected to process a series of
files, and it would be nice to have
another program start processing the files created by the first
-program as soon as it is finished (when zzz.rawdata is created).
-The script checks every five minutes for the file zzz.rawdata,
+program as soon as it is finished (when
+.Pa zzz.rawdata
+is created).
+The script checks every five minutes for the file
+.Pa zzz.rawdata ,
when the file is found, then another portion processing
is done courteously by sleeping for 70 seconds in between each
-awk job.
+.Xr awk 1
+job.
.Sh SEE ALSO
.Xr nanosleep 2 ,
.Xr sleep 3
@@ -128,6 +122,10 @@ The
command is expected to be
.St -p1003.2
compatible.
+.Pp
+Support for non-integer intervals, units other than seconds, and
+multiple intervals which are added together are non-portable
+extensions first introduced in GNU sh-utils 2.0a (released in 2002).
.Sh HISTORY
A
.Nm