In shell scripts, the $ default variable contains some internal variables, which are a special type of variables provided by Linux. These variables are used to make judgments in programs. In a shell program, the values of such variables cannot be modified. $ N $1 indicates the first parameter, and $2 indicates the second parameter... $ # Number of command line parameters $0 name of the current program $? The return code of the previous command or function. If the return code is 0, it indicates success. $ * with "parameter 1 parameter 2... "Save all parameters $ @ in the form of" parameter 1 "" parameter 2 "... save all parameters $ the PID of the Program (process ID). We will first write a simple script to explain the meaning of each variable after execution # touch variable # vi variable script content is as follows: [plain] #! /Bin/sh echo "number: $ #" echo "scname: $0" echo "first: $1" echo "second: $2" echo "argume: $ @ "echo" show parm list: $ * "echo" show process id: $ "echo" show precomm stat: $? "Save and exit to grant the script execution permission # chmod + x variable to execute the script #. /variable aa bb: [plain] number: 2 scname :. /variable first: aa second: bb argume: aa bb show parm list: aa bb show process id: 24544 show precomm stat: 0 you can see through the display result: $ # number of parameters passed to the script $0 is the name of the script itself $1 is the first parameter passed to the shell script $2 is the second parameter passed to the shell script $ @ is a list of all parameters passed to the script $ * shows all parameters passed to the script using a single string, different from location variables, a maximum of nine parameters can be set. $ indicates the ID of the current process running the script. $? Is to display the exit status of the last command, 0 indicates there is no error, other indicates there is an error