Alguns problemas aqui:
Em primeiro lugar, não é assim que você escreve declarações if / else no bash. Em vez disso, você precisa de algo como:
if <condition>
then
<action>
elif <other-condition>
then
<other-action>
else
<another-action>
fi
Em segundo lugar, o condition
que você está verificando aqui não funcionará. a instrução if
verificará o valor de retorno de condition
. Portanto, você precisa que a condição seja um comando (ou pipeline de comandos) que retornará um status de saída zero ou diferente de zero.
Então, tente algo como:
if grep 'present:.*yes' /proc/acpi/battery/BAT0/state
then
# code to execute if battery is present
else
# code to execute if battery is not present
fi
Neste caso, o grep terá sucesso (isto é, retornará um status de saída zero) se o arquivo BAT0/state
corresponder ao padrão present:.*yes
.
Se você precisar fazer correspondência de string, precisará usar o comando [
com um operador =
:
if [ "$somevar" = 'some-string' ]
then
# code to execute when $somevar equals 'some-string'
fi
Para obter mais informações sobre if
-statements no bash, consulte a ajuda para if
:
help if
Ou, veja a página de manual bash para informações gerais sobre programação:
man bash