Let's first write a simple script and then explain the meaning of each variable.
# Touch variable # vi variable script content :#! /Bin/shecho "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 bbnumber: 2
Scname:./variable
First: AA
Second: bb
Argume: AA bbshow parm list: AA bb
Show process ID: 24544 show precomm stat: 0
The result shows that $ # is the number of parameters passed to the script.
$0 indicates the Script Name. $1 indicates the first parameter passed to the shell script. $2 indicates the second parameter passed to the shell script. $ @ indicates all parameters passed to the script. list $ * shows all parameters passed to the script as a single string, different from the location variable, more than 9 parameters $ are 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
Exit status and its meaning
Status Value Meaning
0 indicates that the operation is successful and the program has not encountered any problems.
1-125 indicates a running failure, a script command, a system command error, or a parameter passing error.
126 the command is found but cannot be executed
127 The command to run is not found
> 128 command forcibly ended by the System