É um teste para uma opção de argumento tracejado -
, aparentemente. É um pouco estranho, na verdade. Ele usa uma expansão bash
não padrão na tentativa de extrair o primeiro e somente o primeiro caractere de $1
. O 0
é o índice do caractere principal e o 1
é o tamanho da string. Em um [
test
como esse também pode ser:
[ " -${1#?}" = " $1" ]
Nenhuma comparação é particularmente adequada para test
, uma vez que interpreta -
argumentos também - e é por isso que uso o espaço principal lá.
A melhor maneira de fazer esse tipo de coisa - e do jeito que normalmente é feito - é:
case $1 in -*) mysqld_safe "$@"; esac