Shell scripts have certain advantages over compiler-based programs, such as C or C++ language. However, shell scripting has certain limitations as well.
The following are the advantages:
- Scripts are easy to write
 - Scripts are quick to start and easy for debugging
 - They save time in development
 - Tasks of administration are automated
 - No additional setup or tools are required for developing or testing
shell scripts 
The following are the limitations of shell scripts:
- Every line in shell script creates a new process in the operating system. When we execute the compiled program, such as a C program, it runs as a single process for the complete program.
 - Since every command creates a new process, shell scripts are slow compared to compiled programs.
 - Shell scripts are not suitable if heavy math operations are involved.
 - There are problems with cross-platform portability.
 
We cannot use shell scripts in the following situations:
- Where extensive file operations are required
 - Where we need data structures, such as linked lists or trees
 - Where we need to generate or manipulate graphics or GUIs
 - Where we need direct access to system hardware
 - Where we need a port or socket I/O
 - Where we need to use libraries or interface with legacy code
 - Where proprietary, closed source applications are used (shell scripts put the source code right out in the open for the entire world to see)