-
Notifications
You must be signed in to change notification settings - Fork 2
mjhennig/loop
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
NAME
loop - syntactic sugar for commandline loops
SYNOPSIS
loop [-cfhrvw] [-d seconds] [-i iterations] command
DESCRIPTION
The loop utility eases the creation of common commandline loops one
would usually build upon while or for. It's primarily designed to
reduce the number of keystrokes during a shell session.
OPTIONS
-c, -C Enables (-c) or disables (-C) clear(1) mode, where the screen is
cleared every single iteration, before the command is executed.
-d seconds, -D
Enables or disables delay mode. In this mode, after each execu‐
tion of command, the script is paused for the given number of
seconds.
-f, -F Enables or disables failure ignore mode. In this mode, the loop
will continue even if the command exits with a failure status.
-h, -H Print a short help message on STDOUT or STDERR and exit.
-i iterations, -I
Enables or disables iteration limit mode. In this mode, the loop
will be aborted after the given number of iterations - unless
another break condition has occured before.
-r, -R Enables or disables readline mode. In this mode, the loop will
invoke the read(1) command for every iteration and export the
content in the $LINE environment variable. Execution is stopped
as soon as EOF is encountered.
-v, -V Enables or disables verbose mode.
-w, -W Enables or disables waitkey mode, where the loop is paused after
each iteration until the RETURN key is pressed.
COMMANDS
The command may be any shell command applicable. One should note the
common pitfalls with shell escaping, such as the fact that the exported
$LINE and $ITER variables have to be escaped and, e.g., stream redi‐
rection can get a bit tricky. The easiest way to get around this is
usually to simply put the command in quotes.
EXAMPLES
# Print "Hello World!" twice
loop -i 2 echo Hello World!
# Clear screen, run phpunit(1), ignore failures but do not start over
# until RETURN is pressed
loop -fc phpunit --wait --colors MyTestCase.php
# Display the source of loop(1), one line per second, enumerated
loop -rd 1 'echo "`printf %3d $ITER` $LINE"' < `which loop`
ENVIRONMENT VARIABLES
The loop utility does not need any setup. However, it's possible to
assign a default for the most common options:
LOOP_CLEAR
Corresponds to the -c option; if nonempty, loop will be in
clear(1) mode by default. Can be overridden with -C.
LOOP_IGNORE_FAILURES
Corresponds to the -f option; if nonempty, loop will ignore
failures by default. Can be overridden with -F.
LOOP_VERBOSE
Corresponds to the -v option; if nonempty, loop will create ver‐
bose output by default. Can be overriden with -V.
LOOP_WAITKEY
Corresponds to the -w option; if nonempty, loop will wait for
keystrokes by default. Can be overridden with -W.
BUGS
Probably infinite. Especially the 'wait' mode, which is currently based
on dd(1) and stty(1), may not be that portable.
SEE ALSO
clear(1), getopt(1), sh(1)
COPYING
Mathias J. Hennig wrote this script and it's manual page. As long as
you retain this notice you can do whatever you want with this stuff.
If we meet some day, and you think this stuff is worth it, you can buy
me a beer in return.
About
Syntactic Sugar For Commandline Loops
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published