O shell é executado com o shebang, #!/bin/sh -e
. -e
indica que o shell deve sair no primeiro comando que retorna status / erro diferente de zero.
No meu código acima, grep "inet addr"
retorna erro, 1 quando não foi possível encontrar nenhuma correspondência. Isso faz com que o rc.local seja lançado.
Para suprimir o erro de retorno de grep
, alterei o comando como
isEthConfigured=$(ifconfig eth0 | grep "inet addr" || :)
Realmente difícil de encontrar, mas graças a Gilles e ao outro postar .