Você não está errado, mas eu não iria tão longe a ponto de dizer que as funções estão sendo usadas incorretamente .
Frankly I don't understand the
"${LSB:-}"
part since I can't find this LSB variable anywhere
Nem posso encontrar $ LSB sendo definido em qualquer lugar. Eu só posso especular por que esta variável está sendo verificada; o teste completo é:
[ "$BOOTUP" != "verbose" -a -z "${LSB:-}" ] && echo_success
O resultado do teste é executar echo_success
se o valor da variável BOOTUP não for "detalhado" e a variável LSB não for definida. A definição da sintaxe ${varname:-text}
é:
${parameter:-word} Use Default Values.
If parameter is unset or null, the expansion of word is substituted. Otherwise, the value of parameter is substituted.
Aqui, não há "palavra" após o traço, portanto, se $ LSB não estiver definido ou nulo, toda a expansão resultará em (nada), o que permitiria que o teste -z
passasse.
A minha especulação é que a lógica está lá no caso de você querer mudar o comportamento do script de inicialização para que não execute estas funções success () ou failure () .
Em segundo lugar,
how the scripts appear to be using the success function, for example the last line of the daemon function is:
[ "$?" -eq 0 ] && success $"$base startup" || failure $"$base startup"
Você está correto em que esses parâmetros são passados para as funções, mas não usados. É inofensivo passar parâmetros que não são usados - apenas inconsistentes / confusos! Minha especulação é que as versões anteriores dessas funções examinaram (talvez registraram?) Os parâmetros passados.
Observe que a função init_crypto()
chama os parâmetros success () (ou failure ()) sem !