From Bash Manualexec [-cl] [-a name] [command [arguments]]If command is supplied, it replaces the shell without creating a new  process.If the -l option is supplied, the shell places a dash at the beginning of the zeroth argument passed to command. This is what the  login program does.If -a is supplied, the shell passes name as the zeroth argument to command.Without -l or -a what is in the zeroth argument passed to command?What is the purpose of -l placing a dash at the beginning of the zeroth argument?What is the purpose of -a passing name as the beginning of the zeroth argument?I tried to experiment. Why does the first experiment not output anything, while the second outputs bash?$ bash; exec echo $0 $ bash; $  exec 'echo' $0 bash
The zeroth argument to a command executed by exec
bash;exec