Como funciona esse argumento padrão para um script bash?

Como funciona esse argumento padrão para um script bash?

acabei de descobrir

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

Como isso é chamado? É um embutido? Funciona como parece que funciona?

Responder1

Isso faz parteexpansão de parâmetro shelle está integrado paraqualquer shell POSIX:

${parameter:-word}

Separâmetronão está definida ou é nula, a expansão depalavraé substituído. Caso contrário, o valor deparâmetroé substituído.

No seu exemplo, se ${1}não for definido ou nulo, seu valor será gerado, caso contrário, o valor de ${default}será gerado.

Responder2

É Parameter Expansion, descrito emPágina de manual do Bashque você também pode invocar localmente com 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.

informação relacionada