Verificar se o sistema possui uma bateria não é confiável - um no-break conectado ao sistema (não apenas para alimentação, mas via USB, bem como para desligamento automático e monitoramento de bateria) pode aparecer como uma bateria.
No entanto, existe uma maneira confiável:
dmidecode --string chassis-type
Em um laptop, isso retornará um dos "Laptop", "Notebook" "Portable" ou "Sub Notebook" (dependendo do que o fabricante codificou no BIOS). Há uma lista completa de valores possíveis em " Identificando o tipo de chassi de um computador " no Guia de Scripts do Windows 2000 - não se preocupe em ser uma página do Microsoft TechNet, isso não é específico do SO.
Odmidecode também pode obter informações sobre o fabricante do hardware, o número de série do sistema (às vezes), etc.