Eu vi casos em que o x$variable
não foi citado e, nesse caso, é para lidar com situações em que a variável ( $START_DAEMON
neste caso) pode estar vazia. Caso contrário, seu teste seria verificar se ! = "yes"
e o teste gerariam erro. No entanto, como você apontou nos comentários, citar duas vezes o x$variable
cuida disso.
Por outro lado, uma pergunta sobre ServerFault levou-me a esta página: link , em que se está a impedir que a expansão das variáveis comece com um personagem que pode confundir [
ou test
Mesmo assim, acho que esse é um problema que só pode ser um problema em versões mais antigas ("histórico" como a página de abertura do grupo diz), e que implementações mais recentes fazem a coisa certa sem o x
, contanto que o dobro -pases estão envolvidos pelo menos. Por isso, pode ser principalmente uma tradição de codificação. Consegui confirmar um problema usando /bin/sh
no SunOS 5.10, embora:
# a="!"; [ "$a" = "yes" ] && echo ok
test: argument expected