1. Darle un valor por defecto a un parámetro:

${1:-valorPorDefecto}

También se puede utilizar el símbolo :=, pero la variable destino debe tener ya un valor. Por lo que no se puede utilizar en los parámetros de entrada de un programa ya que las variables no tienen un valor inicial:

${var:=value}

2. Mostrar un error si no se pasa un parámetro y parar la ejecución del script:

${var?Error, la variable no se ha definido}
${var?Error, la variable no se ha definido o está vacía}

Se puede rizar el rizo un poco más y además de dar un error ejecutar un comando, en nuestro ejemplo hacemos un cat de un fichero:

"${1:?Error, falta el parámetro $(cat $HOME/leeme.txt)}"

3. Mostrar la longitud de una variable:

${#var}

4. Borrar un patrón de la parte delantera del valor de una variable.
Para borrar la mínima parte del patrón

${var#patrón}

Para borrar la máxima parte del patrón:

${var##patrón}

Por ejemplo:

$> path=/home/user1/dir1/text.txt
$> echo ${path#*/}
home/user1/dir1/text.txt
$> echo ${path##*/}
text.txt

5. Borrar un patrón de la parte trasera del valor de una variable. Es totalmente equivalente al punto anterior.
Para borrar la mínima parte del patrón

${var%patrón}

Para borrar la máxima parte del patrón:

${var%%patrón}

6. Reemplazar texto en una variable:

${var/Patrón/Reemplazo}

7. Seleccionar parte del texto de una variable:

${var:inicio}
${var:inicio:longitud}

Por ejemplo:

$> var="0034914434343"
$> echo "El teléfono es ${var:4}"
El teléfono es 914434343
$> echo "El prefijo es ${var:0:4}"
El prefijo es 0034