1 ${parameter%word} and ${parameter%%word}
${parameter%word},word is a pattern that starts at the end of the parameter parameter and matches it forward. A single% makes the shortest match, that is, matches from the back forward, and encounters a successful stop immediately after the match.
${parameter%%word},word is a pattern that starts at the end of the parameter parameter and matches it forward. The double% makes the longest match, that is, from the back forward match, encounters a match to continue the match, and always matches to the beginning to find the longest match.
Path=/home/mem/long.file.name
${path%.*}---->/home/mem/long.file
${path%%.*}---->/home/mem/long
2 ${parameter#word} and ${parameter# #word}
The difference between the percent and% is that the #是从parameter的开头往后匹配, also leaves the mismatched part. In addition, when a # is also the shortest match, and the double # is the longest match.
Bash Shell parameter expansion