我如何通过脚本知道电池是否存在?

我如何通过脚本知道电池是否存在?

我想知道我应该在脚本中使用哪个命令来检查电池是否存在。if condition谢谢

当我尝试以下命令时出现错误。

test@test-pc:~$ cat /proc/acpi/battery/BAT0/*
cat: /proc/acpi/battery/BAT0/*: No such file or directory

test@test-pc:~$ cat /sys/class/power_supply/BAT0/status
cat: /sys/class/power_supply/BAT0/status: No such file or directory

acpi已经安装好了。

我曾经 dmesg | grep battery检查过电池,结果是这样的:

[    1.309638] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared
[    1.309643] ACPI: Battery Slot [BAT1] (battery present)

结果acpi -i也如下:

Battery 0: Unknown, 79%
Battery 0: design capacity 8244 mAh, last full capacity 6591 mAh = 79%

现在我如何在脚本中使用该结果?

答案1

该文件/sys/class/power_supply/BAT0/status可能会对您有帮助。

如果存在电池,例如:

cat /sys/class/power_supply/BAT0/status
Charging

另一个地方可能是:

cat /proc/acpi/battery/BAT0/*

或者查看 ACPI 相关信息使用以下命令:

acpi -i

acpi -i当没有电池时,不会向标准输出输出任何内容。在脚本中按如下方式使用它:

if [ -z "$(acpi -i)" ]; then
  echo "battery not present"
else
  echo "battery present"
fi

答案2

下面的 Python 代码检查 的输出acpi -i。如果没有输出,则打印“我的电池在哪里?”,否则打印“OK,存在”。当然,您可以使用 或 在其中输入任何subprocess.call()命令subprocess.Popen()

#!/usr/bin/env python

import subprocess

get_batterystatus = subprocess.check_output(['acpi', '-i']).decode('utf-8').strip()

if get_batterystatus == "":
    print "Where is my battery?" 
else:
    print "OK, present" 

相关内容