No meu laptop, posso verificar o conteúdo do arquivo /sys/class/power_supply/C1BC/online : se o laptop estiver conectado, este arquivo contém 1 , caso contrário ele contém 0 .
Por exemplo,
if [ "1" = "'cat /sys/class/power_supply/C1BC/online'" ]; then
echo "Laptop is charging/plugged"
else
echo "Laptop is discharging/unplugged"
fi
Observação. Conforme confirmado pelo OP, a parte C1BC depende do sistema.