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 root
privilè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 root
privilèges.
Plus de détails
Sur un système Debian avec une batterie réelle, le /sys/module/battery
répertoire contient de nombreux fichiers. Un de ces fichiers /sys/module/battery/initstate
contient 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/initstate
peut ê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/battery
répertoire n'existait pas.