Give you a full, you in the Linux environment to try to understand more:
The execution name of this program
$n the nth parameter value of this program, n=1..9
$* all parameters of this program, this option can have more than 9 parameters.
$# the number of parameters for this program
$$ the PID of this program (the current process ID number of the script run)
$! PID of the previous background instruction (process ID number of the last process running in the background)
$? Executes the return value of the previous instruction (displays the exit status of the last command. 0 means no error, any other value indicates an error)
$-shows the current options used by the shell, same as the SET command function
[email protected] is similar to $*, but can be used as an array
In addition, the deletion of the string is intercepted as follows:
File=/dir1/dir2/dir3/my.file.txt
Different values can be replaced with ${}, respectively:
${file#*/}: Delete the first/its left string: dir1/dir2/dir3/my.file.txt
${file##*/}: Remove the last/and left string: my.file.txt
${file#*.} : Remove the first one. And the string to the left: file.txt
${file##*.} : Remove the last one. And the string to the left: txt
${file%/*}: Remove the last/And right string:/dir1/dir2/dir3
${file%%/*}: Delete the first/its right string: (null value)
${file%.*}: Remove the last one. And the string to the right:/dir1/dir2/dir3/my.file
${file%%.*}: Remove the first one. And the string to the right:/dir1/dir2/dir3/m
The use of some shell symbols