Skip to content

Files

Latest commit

 

History

History
37 lines (24 loc) · 1.19 KB

SC2093.md

File metadata and controls

37 lines (24 loc) · 1.19 KB

Pattern: Use of exec followed by other commands

Issue: -

Description

The script contains an exec command followed by other commands in the same block. This is likely an error because the script will not resume after an exec command.

Instead, "exec" refers to the Unix process model's idea of execution (see execve(2)), in which the current process stops its current program and replaces it with a new one. This is mainly used in wrapper scripts.

To execute another script or program and then continue, simply drop the exec as in the example.

Example of incorrect code:

echo "Starting compilation"
exec ./compile
echo "Starting deployment"
exec ./deploy

Example of correct code:

echo "Starting compilation"
./compile
echo "Starting deployment"
./deploy

Exceptions

If the code after the exec is only there to handle a failure in executing the command you can ignore this warning. For this reason, ShellCheck suppresses the warning if exec is only followed by echo/exit commands.

Further Reading