O que significa um sinal de menos dentro de colchetes de um script de shell?

3

Em um script de shell existente, vejo algumas variáveis referenciadas que incluem ou terminam com um sinal de menos. Por exemplo:

PID=${PID-/run/unicorn.pid}

e:

run_by_init() {
    ([ "${previous-}" ] && [ "${runlevel-}" ]) || [ "${runlevel-}" = S ]
}

O que os sinais menos significam em ambos os cenários?

    
por Matt Huggins 02.04.2015 / 01:14

1 resposta

6

De acordo com a seção "Expansão de Parâmetros" na página man bash, isso significa "use o valor padrão se o parâmetro não estiver definido". Então, por exemplo,

${PID-/run/unicorn.pid}

é igual a $ PID se $ PID for definido, caso contrário, /run/unicorn.pid.

    
por 02.04.2015 / 10:58