forx - run a loop

FORX(1) BSD General Commands Manual FORX(1)


forx — run a loop


In an execlineb(1) script:

forx [−E −e] [−p] [−o okcodes −x breakcodes] variable { args... } loop...


forx reads a block (

cf. execline-block(7) ) and unquotes it. That block contains a list of args.

For each argument x in args..., forx runs loop as a child process, with variable= x added to its environment.

forx then exits 0.

You can start loop with ‘importas -u variable variable’ if you want variable substitution.


okcodes must be a comma-separated list of exit codes. If loop exits with one of the codes in okcodes, forx will run the following instances of the loop, but if the exit code is not listed in okcodes, forx will exit immediately with an approximation (

cf. execline-exitcodes(7) ) of the same exit code.

−x breakcodes

Like the previous option, but with inverted meaning - the listed exit codes are codes that will make forx break the loop and exit, and the unlisted exit codes will make it keep looping.


Run in parallel. Do not wait for an instance of loop... to exit before spawning the next one. forx will still wait for all instances of loop to terminate before exiting 0. If the −o option has been given, forx will exit 0 if all of the exit codes are in the values listed in the okcodes list, else it will exit 1. If the −x option has been given, forx will exit 0 if none of the exit codes are in the values listed in the breakcodes list, else it will exit 1.


No autoimport. This is the default.


Autoimport. Instead of spawning loop..., spawn ‘importas -ui variable variable loop...’. This substitutes variable into the command line instead of putting it into the environment.


execlineb(1), forbacktickx(1), forstdin(1), loopwhilex(1), execline-block(7), execline-exitcodes(7)

This man page is ported from the authoritative documentation at:


Laurent Bercot
Alexis <

[email protected] > (man page port)

BSD February 14, 2021 BSD

Updated 2023-02-15 - |