我想知道我应该在脚本中使用哪个命令来检查电池是否存在。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"