Solution Debian:
Pour savoir si une machine exécutant Debian est un ordinateur portable, essayez:
[ -d /sys/module/battery ] && echo "Yes it's a laptop"
Cette approche ne nécessite pas de rootprivilèges.
Sur d'autres distributions, cependant, ce répertoire semble exister, au moins sous forme de squelette, qu'il y ait ou non une batterie. D'après les commentaires (ci-dessous), ces distributions incluent CentOS, Ubuntu et la distribution dérivée d'Ubuntu de Linux Mint.
Solution plus générale
Bien qu'elle ne fonctionne pas sur mes systèmes Debian, la solution proposée par Alex fonctionnerait sur Ubuntu & CentOS. Suggère donc, pour une plus grande généralité, une solution combinée possible:
[ -f /sys/module/battery/initstate ] || [ -d /proc/acpi/battery/BAT0 ] && echo "Yes it's a laptop"
Cette approche ne nécessite pas de rootprivilèges.
Plus de détails
Sur un système Debian avec une batterie réelle, le /sys/module/batteryrépertoire contient de nombreux fichiers. Un de ces fichiers /sys/module/battery/initstatecontient le texte live. Sur Ubuntu, cependant, ces fichiers n'existent même pas sur les ordinateurs portables réels. Ainsi, il apparaît que la présence du fichier /sys/module/battery/initstatepeut être utilisée pour tester un ordinateur portable exécutant Debian.
Sur les systèmes Debian que j'ai testés, en revanche, le /proc/acpi/batteryrépertoire n'existait pas.