FORSTDIN(1)
π
FORSTDIN(1) β bestie's guide to the forstdin manual page π
okay so this is a General Commands Manual page, and we're talking about the icon that is forstdin. Buckle up, it's giving "loops but make it stdin" π
β¨ NAME β¨
forstdin β use input as loop elements to run another program π
πΈ SYNOPSIS πΈ
Inside an execlineb(1) script, bestie, it looks like this:
forstdin [-E | -e] [-p | -P maxpar | -o okcodes | -x breakcodes]
[-N | -n] [-C | -c] [-0 | -d delim] variable loop...
π DESCRIPTION π
so forstdin reads its standard input as it becomes available β like, it doesn't sit around waiting, it's a main character that moves fast β and it splits that input on every line automatically (cf. execline-transform(7)).
Then, for every argument x in the split output, forstdin runs loop... as a child process, with variable= x added to its environment. iconic behavior honestly.
After that, forstdin exits 0 if it read something on stdin, and 1 if it didn't read anything. no cap, that's it. π«Ά
π₯ OPTIONS π₯
-pβ Parallel mode. Do not wait for a loop... instance to finish before spawning the next one.forstdinwill still wait for all instances of loop to terminate before exiting, though. π-P maxparβ Like-p, but only run up to maxpar instances at a time. Minimum is1; maximum is10000.-pis equivalent to-P 10000, i.e. it can spawn a very large number of loop instances in parallel, but it's technically not infinite. (the math is mathing, but it's still a lot π« )-o okcodesβ okcodes must be a comma-separated list of exit codes. If the-pflag hasn't been given and loop exits with one of the codes in okcodes,forstdinwill run the following instances of the loop, but if the exit code is not listed in okcodes,forstdinwill exit immediately with an approximation (cf.execline-exitcodes(7)) of the same exit code. so like, listed = keep going, unlisted = bye π-x breakcodesβ Like the previous option, but with inverted meaning β the listed exit codes are codes that will makeforstdinbreak the loop and exit, and the unlisted exit codes will make it keep looping. flip it and reverse it π«-eβ No autoimport. This is the default.-Eβ Autoimport. Instead of spawning loop..., spawnimportas -uSi variable loop.... This substitutes variable into the command line instead of putting it into the environment. fancy β¨
Other options are similar (in name and functionality) to the switches passed to control a substitution mechanism (cf. execline-transform(7)), on purpose; however, forstdin does not call the substitution mechanism and has its own semantics for those options. so don't get it twisted, okay? π
-Nβ Store the whole line in variable, including the terminating newline (or other delimiter).-nβ Chomp a terminating delimiter from the line from stdin before storing it into variable. This is the default.
β οΈ heads up bestie: if chomping is active, and the last line of stdin is not terminated by a delimiter, then this last line will not be processed. the way that line just gets ignored... π
-Cβ Crunch. If there is an empty line (i.e. that only contains a delimiter), do not call loop.-cβ Do not crunch, call loop even if the line is empty. This is the default.-0β Accept null characters on its stdin, using them as delimiters. If this option and a-doption are used simultaneously, the rightmost one wins. rightmost wins, that's the rule π-d delimβ Use the characters in string delim as delimiters for a line. Default is'\n', meaning the input is only split on newlines.
π¦ SEE ALSO π¦
execlineb(1), forbacktickx(1), forx(1), loopwhilex(1), execline-exitcodes(7), execline-transform(7)
This man page is ported from the authoritative documentation at: https://skarnet.org/software/execline/forstdin.html π
π AUTHORS π
- Laurent Bercot
- Alexis <flexibeast@gmail.com> (man page port)
and that's the whole vibe check β
this page is from the Debian build of September 28, 2021, ported with love β FORSTDIN(1), slay, periodt ππ§πΈ
π¦ where this page comes from
- nixpkgs unstable: execline 2.9.9.2
- nixpkgs unstable: execline-man-pages 2.9.9.1.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms