Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如果充电器=未拔出,请提醒我。命令行脚本_Linux_Bash_Shell_Ubuntu_Command Line - Fatal编程技术网

Linux 如果充电器=未拔出,请提醒我。命令行脚本

Linux 如果充电器=未拔出,请提醒我。命令行脚本,linux,bash,shell,ubuntu,command-line,Linux,Bash,Shell,Ubuntu,Command Line,我想发出某种警告,让我知道充电器何时断开(电缆无法很好地插入插座) 我有这个来检测充电器的状态: cat /sys/class/power_supply/ADP1/online 充电时返回1,使用电池时返回0 此选项用于请求弹出窗口: zenity --info --text="Charger unplugged!" 我想某种if语句可以完成这项工作,必须每隔一秒钟左右无限地运行它 然后我想起了我在Arduino的日子,在那里你可以编程一个中断,可以触发脚本运行,而不是一直运行它 不确定实现

我想发出某种警告,让我知道充电器何时断开(电缆无法很好地插入插座)

我有这个来检测充电器的状态:

cat /sys/class/power_supply/ADP1/online
充电时返回1,使用电池时返回0

此选项用于请求弹出窗口:

zenity --info --text="Charger unplugged!"
我想某种if语句可以完成这项工作,必须每隔一秒钟左右无限地运行它

然后我想起了我在Arduino的日子,在那里你可以编程一个中断,可以触发脚本运行,而不是一直运行它

不确定实现这一目标的最佳方式是什么。有人知道吗


非常感谢。

您可以创建一个服务,也可以用一种更简单、更原始的方式:创建一个脚本来创建一个fork,将它自己的
stdout
stderr
重定向到
/dev/null
并执行一个无限循环,该循环将不断检查您的
/sys/class/power\u supply/ADP1/online
文件。当值为
0
时,它会将
stdout
stderr
重定向到原始值,以显示提示。要使其成为自治脚本,您必须使用crontab
@reboot
执行它


我认为在CLI中它应该可以工作,但我不知道它在图形桌面界面中是否可以工作

使用一个简单的循环来检查电池电量。您可以存储以前的充电状态,并在充电状态更改为“已拔出”时发出通知。请记住添加一些延迟以避免CPU过度使用。您好,谢谢您的帮助!命令
zenity--info--text=“Charger plugged!”
负责创建一个图形警报窗口,因此不确定是否需要使用您所说的重定向stderr的方法。您知道如何将上述两个命令弹出到if语句中吗?然后,我将查看crontab中的预定执行。我尝试将其转换为if命令,但遇到了很多问题。是否要在shell脚本中创建脚本?