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