The file essai contains a shell script. Shell scripts are executed
by programs called interpreters. They do not need to be compiled
before being executed.
/bin/bash is an interpreter, not a compiler. When the command line
/bin/bash essai -o essai.o
is executed, the program /bin/bash is run with the three arguments
essai -o essai.o
/bin/bash assumes that the first argument is a file containing lines
of commands in the bash scripting language and that the other
arguments are to be passed to the script. /bin/bash proceeds to
interpret and execute the commands of that file. The script essai,
however, does not do anything with any arguments, so nothing is done
with "-o essai.o" by either /bin/bash or essai. Those arguments are
ignored.
Some compilers, such as the C compiler cc, have a -o option that
tells the compiler the name of the output file.
You appear to not understand the difference between interpreted
languages such as bash and compiled languages such as C. The source
code for an interpreted language, often called a script, is read by
a program called an interpreter and executed by the interpreter.
The source code for a compiled language first needs to be compiled
into machine code, then that machine code is loaded into RAM and
executed by the CPU.
The program make is often used as an aid to compiling source code
files to machine-code files. There is usually no need to use make
to run shell scripts.
Your script essai could also be run by setting its executable
permission bits like this,
chmod +x essai
and just giving its path name to the shell like this,
./essai
> Where shall I go for explanations of all these -o -e etc ??
The traditional place to go for explanations of program options such
as -o and -e is the man page for the program. Even with the
availability of the Internet and Google, I think that the man page
is still the best place to go, at least as the first place to go.
To read the man pages for bash and make, for example, you would
execute the following commands at the shell prompt:
man bash
man make
To find out more about using the man command, execute
man man
You should probably find a good beginners book about using Linux.
It will do a better and more complete job than I can of explaining
shell scripts, interpreters, compilers and makefiles.
Regards,
Gary