-
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