我是shell脚本的新手(对此事进行编程,请善待)。 我已经在Linux Mint上编写了一个脚本,当我的电池电量达到15%并且播放声音时会通知(使用xcowsay)“deththeme.wav” 基本上我希望我的shell脚本的第二部分在插入充电器时终止。我尝试使用无限循环和退出命令,但这不起作用。我脚本中的其他所有内容都与我想要的完全一致。这是我的代码:
#!/bin/bash
while true
do
PLUG=`acpi | awk {'print $3'}`
while [ $PLUG = "Discharging," ]
do
BATSTAT=`acpi | cut -d , -f 2`
if [ $BATSTAT = "98%" ]
then
sh sound.sh &
xcowsay --time=10 "Plug that shit in!" | sleep 100
else
PLUG=`acpi | awk {'print $3'}`
fi
done
done
#!/bin/bash
x=1
z=1
while [ $x = 1 ]
do
play -q /home/greg/Documents/deththeme.wav
x=0
done
while [ $z = 1 ]
do
PLUG=`acpi | awk {'print $3'}`
if [ $PLUG = "Charging," ]
then
z=0
else
:
fi
done
答案 0 :(得分:1)
问题是play
在前台运行,因此您的脚本会等待它完成,然后再继续检查充电状态。
这是一个简单的例子,它在后台播放声音,等待五秒钟,然后杀死播放器。您可以将sleep
替换为等待充电的内容:
play -q somefile.wav &
sleep 5
kill $!