在我的shell脚本中,如何在插入充电器时停止播放声音?

时间:2015-01-15 17:15:27

标签: linux bash shell terminal mint

我是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

1 个答案:

答案 0 :(得分:1)

问题是play在前台运行,因此您的脚本会等待它完成,然后再继续检查充电状态。

这是一个简单的例子,它在后台播放声音,等待五秒钟,然后杀死播放器。您可以将sleep替换为等待充电的内容:

play -q somefile.wav &
sleep 5
kill $!