Delete
${varname#strmatch}//Match the Strmatch from scratch in varname and then remove the position from the beginning to the first match
${varname# #strMatch}//Match the Strmatch from scratch in varname and then delete the position from the beginning to the last match
${varname%strmatch}//in varname to match strmatch, then delete from tail to first match to place
${varname%%strmatch}//in varname to match strmatch, then delete from tail to last match to the place
${VARNAME/OLDSTR/NEWSTR}//The first match to the old string will be replaced by a new string
${VARNAME//OLDSTR/NEWSTR}//All matches to the old string, will be replaced by a new string
Alternative
Var=${str-content}//If STR has no value set, var=content, otherwise var=str
Var=${str:-content}//If STR is not set value or str is empty, var=content, otherwise var=str
Var=${str+content}//If STR has no value set, var=, otherwise var=content
Var=${str:+content}//If STR is not set value or str is empty, var=, otherwise var=content
Var=${str=content}//If STR has no value set, var=str=content, otherwise var=content
Var=${str:=content}//If STR is not set value or str is empty, var=str=content, otherwise var=content
Var=${str?content}//If STR has no value set, content is output to stderr, otherwise var=str
Var=${str:?content}//If STR is not set value or str is empty, content is output to stderr, otherwise var=str
Deletion of variable contents in shell, substitution