$0 the execution name of this program $ n the nth parameter value of this program, n = 1 .. 9 $ * all parameters of this program, this option parameter can exceed 9. $ # Number of parameters of the program $ PID of the Program (ID of the current process running the script) $! Run the PID of the previous background command (ID of the last process running in the background) $? The Return Value of the last command (display the exit status of the last command. 0 indicates no error, and any other value indicates an error.) $-displays the current options used by the shell. It has the same function as the SET command. [email protected] is similar to $, but it can be used as an array. If [-z "$ dirname"] What does-Z mean here? If [-D/userdata] What about-D? File operations like this are very useful in shell programming: I have summarized some of the frequently used-D: determine whether or not the specified directory is-Z: determine whether a specified variable has a value-F: Determine whether the specified variable is a file-L: Determine whether the specified variable is a symbolic link-R: Determine whether the specified variable is readable-S: determine whether the length of an existing object is 0-W: Determine whether the specified object can be written-X: determine whether the existing object can be executed! : Negative symbols of test conditions these file operations are often convenient for script programming, especially in if condition statements.