¿Cómo funciona este argumento predeterminado para un script bash?

¿Cómo funciona este argumento predeterminado para un script bash?

acabo de descubrir

default="no parameter provided"
echo ${1:-$default}  # in a script

¿Como se llama esto? ¿Es incorporado? ¿Funciona como parece que funciona?

Respuesta1

Esto es parte deexpansión de parámetros de shelly está integrado encualquier shell POSIX:

${parameter:-word}

Siparámetrono está configurado o es nulo, la expansión depalabraes sustituido. De lo contrario, el valor deparámetroes sustituido.

En su ejemplo, si ${1}no está configurado o es nulo, se genera su valor; de lo contrario, ${default}se genera el valor de.

Respuesta2

Es Parameter Expansion, descrito en enpágina de manual de Bashque también puedes invocar localmente con man bash:

   ${parameter:-word}
          Use Default Values.  If parameter is unset or null, the
          expansion of word is substituted.  Otherwise, the value
          of parameter is substituted.

información relacionada