execline
Software
skarnet.org
The forbacktickx program
forbacktickx runs a program and uses its output as loop elements to
run another program.
Interface
In an execlineb script:
forbacktickx [ -p | -x breakcode ] [ -n ] [ -C | -c ] [ -0 | -d delim ] variable { gen... } loop...
- forbacktickx reads a
block,
gen..., and unquotes it.
- It runs gen... as a child process. gen's
output must not contain a null character.
- It reads gen's output as it needs,
splitting it automatically.
- For every argument x in the split output,
forbacktickx runs loop... as a child process, with
variable=x added to its environment.
- forbacktickx then exits 0.
Options
- -p : parallel mode. Do not wait for a loop...
instance to finish before spawning the next one. forbacktickx will
still wait for all instances of loop to terminate before
exiting, though.
- -0 : accept null characters from gen's output,
using them as delimiters. If this option and a -d option are
used simultaneously, the rightmost one wins.
- -x breakcodes : breakcodes must
be a comma-separated list of exit codes. If at some point loop...
exits with a code listed in breakcodes, forbacktickx will not keep
looping, but will exit immediately with the same exit code. This doesn't apply
if the -p option has been given.
- Other options are used to control
the substitution mechanism for every x. Of course, you can't
split x.
Notes
- You can start loop... with "import -u variable"
to perform variable substitution.