This article from Baidu Encyclopedia.
What is a shell.
The shell, to be exact, is a command-line interpreter, and its role is to follow a certain syntax to interpret and pass the commands that are entered into the system. It provides users with an interface system-level program that sends a request to Linux to run a program, and the user can start, suspend, stop, or even write programs with a shell. The shell itself is a program written in C language, which is a bridge for users to use Linux. The shell is both an imperative language and a programming language (what you call a shell script). As a command language, it interactively interprets and executes commands entered by the user; As a programming language, it defines various variables and parameters, and provides many control structures that are available in higher-order languages, including loops and branches. Although it is not part of the Linux system kernel, it invokes most of the system kernel's functions to execute programs, create documents, and coordinate the operation of each program in a parallel manner.
What is a shell script.
The Shell Script,shell script is similar to the batch processing under Windows/dos, that is, using various commands to put into a file in advance, it is convenient to execute a program file, which is convenient for the administrator to set up or manage. But it is more powerful than batch processing under Windows, and is more efficient than a program edited with other programming programs, after all, it uses the commands under Linux/unix. Another way of saying that is, Shell script is a program written using the functions of the shell, which uses plain text files, writes some shell syntax and instructions inside, and then uses formal representations, pipeline commands, and data flow redirection to achieve the desired processing purpose.