Analysis of information sources in references of the Wikipedia article "Câu lệnh shell" in Vietnamese language version.
When the first two characters of a file are !#, the kernel scans the rest of the line for the full pathname of the interpreter to use to run the program.
When a typical shell script or function is finished, it may return an integer between 0 and 255 to let its parent know whether it was successful (or, in some case, what sort of action it performed).
Rather than using a file extension for shell scripts, it's preferred to keep a filename without extension and let an interpreter identify the type by looking into shebang(#!).
Shell scripts don't need a special file extension, so leave the extension blank (or you can add the extension.sh if you prefer, but this isn't required.