我正在编写一个 bash 脚本来设置安装 Ubuntu 后所需的所有软件。如果电脑是笔记本电脑,我想安装tlp进行电源管理。如果是桌面,则不需要tlp。
是否有命令可以确定计算机是台式机还是笔记本电脑/平板电脑?
也许,检测电池的存在是我应该寻找的特征。
我正在编写一个 bash 脚本来设置安装 Ubuntu 后所需的所有软件。如果电脑是笔记本电脑,我想安装tlp进行电源管理。如果是桌面,则不需要tlp。
是否有命令可以确定计算机是台式机还是笔记本电脑/平板电脑?
也许,检测电池的存在是我应该寻找的特征。
我不认为检查电池是一个好的解决方案:台式机可能有显示为电池的 UPS。
您可以使用命令:
输出将是
看
man hostnamectl
。另一种选择是使用:
请注意,在这种情况下,输出可能类似于“笔记本电脑”、“笔记本电脑”、“便携式”、“手持式”或“子笔记本电脑”,具体取决于制造商的名称。
还有一个脚本名为:
您可以检查其 (
/bin/laptop-detect
) 内容以获取更详细的方法。检查系统是否有电池并不可靠 - 连接到系统的 UPS 可能会显示为电池(我检查时显示)。
因此一种方法是使用
dmidecode
获取系统的机箱类型:但这个命令需要
sudo
.为了避免使用sudo
,您可以打印 的内容/sys/class/dmi/id/chassis_type
,这将返回机箱类型的十进制值。但当我检查时,这两个命令都给出了输出,其中我的台式机被视为“机架安装机箱”(十进制值 23),而我的笔记本电脑被视为“笔记本电脑”(十进制值 10)。因此,它可能会根据我们正在处理的系统而有所不同。
当时我使用了该命令并从机箱和图标名称
hostnamectl
中获得了更好的值:由于我的台式机没有任何机箱选项,因此我使用了图标名称值:
所以在我的笔记本电脑上,结果是“ computer-laptop ”,在台式机上它只是“ computer ”,在我的服务器上,它是“ computer-vm ”。您可以使用这些值在系统上安装tlp 。