FOREGROUND(1)

πŸ“¦ version 2.9.9.2, in nixpkgs unstable

✨ NAME ✨

okay so bestie, this is foreground from the General Commands Manual β€” the foreground(1) page β€” and it is literally about executing a sequence of commands. πŸŽ€


🌸 SYNOPSIS 🌸

Inside an execlineb(1) script, it's giving:

foreground { prog1... } prog2...

πŸ’– DESCRIPTION πŸ’–

foreground reads prog1 in a block (cf. execline-block(7)). It forks and executes it, then waits for it to complete. no cap. 🫢

Then foreground sets the ? environment variable to the exit code of prog1. If prog1... was killed by a signal, the ? value is 256 plus the signal number. 😭

After that, foreground exec(3)s into prog2.... slay. πŸ’…

foreground is the basic sequence operator: it takes two commands and executes them one by one. execline scripts require it to wrap external commands that exit, instead of natively supporting the β€œperform some action, then execute some other program” model. ✨

Here's the exact equivalence, bestie: foreground prog1... "" prog2... is equivalent to sh -c 'Ar prog1... ; exec prog2...'. πŸ¦‹

256 and above are not valid exit codes for commands, so when the ? environment variable contains 256 or more, it means that the previous command was killed by a signal. There is no ambiguity here, and ? reports exactly what happened to the previous command; foreground does not exit, so there is no need for exit code approximation (cf. execline-exitcodes(7)). πŸ’€


🌈 SEE ALSO 🌈

This man page is ported from the authoritative documentation at: https://skarnet.org/software/execline/foreground.html


πŸ‘‘ AUTHORS πŸ‘‘

  • Laurent Bercot
  • Alexis <flexibeast@gmail.com> (man page port)

okay that's the whole page, bestie β€” it's from Debian, dated February 14, 2021. periodt. πŸ’œ

πŸ“¦ where this page comes from