Execute a command
exec [-cl] [-a name] [command [arguments]]
-l Place a dash at the beginning of the zeroth arg passed to command. (This is what the login program does.) -c Causes command to be executed with an empty environment. -a The shell passes name as the zeroth argument to command.
If command is supplied, it replaces the shell without creating a new process. If no command is specified, redirections can be used to affect the current shell environment.
If there are no redirection errors, the return status is zero; otherwise the return status is non-zero.
exec is a bash built in command.
To run an executable file or a shell script from the command line it is often not necessary to use exec at all, just prefix the filename with ./
bash will only search the path not the current working directory for the file.
To execute a program/script in the current working directory use:
You might be tempted to ‘fix’ this by adding ‘.’ to $PATH but this is widely considered to be a bad idea for security reasons.