execline
Software
skarnet.org

# The `loopwhilex` program

`loopwhilex` performs a conditional loop.

## Interface

         loopwhilex [ -n ] [ -o okcodes | -x breakcodes ] prog...

- `loopwhilex` runs prog... as a child process and waits for it to complete.
- As long as prog exits zero, `loopwhile` runs it again.
- `loopwhilex` then exits with an approximation of the last prog invocation's exit code.

## Options

- `-o` okcodes : okcodes must be a comma-separated list of exit codes. `loopwhilex` will keep looping as long as prog exits with one of the codes in okcodes.
- `-x` breakcodes : like the previous option, but with inverted meaning - the listed exit codes are codes that will break the loop and exit, and the unlisted exit codes will keep the loop running.
- `-n` : negate the test. This option is now redundant, and may disappear soon.

## Notes

- `loopwhilex prog...` is equivalent to `loopwhilex -n -x 0 prog...` and `loopwhilex -o 0 prog...`
- Be careful: execline maintains no state, in particular it uses no real variables, and environment will be of no use here since every instance of prog... runs as a separate child process. To avoid being stuck in an infinite loop, prog... should modify some external state - for instance, the filesystem.