Like mbfl_program_exec(), but execute the program through the Bash command exec, so
replacing the current process without creating a new one.
If the function mbfl_program_set_exec_flags() was used to select arguments for the Bash
built–in exec: that request is honoured by putting the selected arguments on the command
line of exec. The request is considered “consumed” and reset.
If a trap is set for the ‘EXIT’ event: such trap is executed by Bash, See trap. This means the MBFL’s atexit handlers are executed, Running scripts at exit–time.
Inside a script, we can easily test program execution with replacement as follows:
{
(mbfl_program_replace "$mbfl_PROGRAM_BASH" '-c' 'exit 123';)
$? ⇒ 123
}
{
local RESULT
RESULT=$(mbfl_program_replace "$mbfl_PROGRAM_BASH" '-c' 'echo password';)
"$RESULT" ⇒ password
}
and we can select flags for exec as follows:
local RESULT
RESULT=$(mbfl_program_set_exec_flags '-a' 'secret'
mbfl_program_replace "$mbfl_PROGRAM_BASH" '-c' 'echo $0';)
"$RESULT" ⇒ secret
If the redirection of stderr to stdout is requested with
mbfl_program_redirect_stderr_to_stdout(): such request is honoured and consumed. For a
discussion of channels redirection when calling this function, see Redirecting channels when executing a program.
Like mbfl_program_replace(), but redirect the standard input, output and error channels using
the given channels.
If the redirection of stderr to stdout is requested with
mbfl_program_redirect_stderr_to_stdout(): such request is ignored and consumed. For a
discussion of channels redirection when calling this function, see Redirecting channels when executing a program.
Store the strings FLAG as internal state. At the next program execution with one of the
functions mbfl_program_replace*(): the string is consumed as flags for the Bash built–in
exec.
Reset to empty the internal state representing flags for the Bash built–in exec.
This document describes version 3.0.0-devel.9 of Marcos Bash Functions Library.