簡體   English   中英

在我的Shell腳本中,如何在插入充電器時停止播放聲音?

[英]In my shell script, how can I make the sound stop playing when my charger is plugged in?

我是Shell腳本的新手(請對此進行編程,請保持友善)。 我已經在Linux Mint上編寫了一個腳本,該腳本會在電池電量達到15%時通知我(使用xcowsay),並播放聲音(在第二個腳本中)“ deththeme.wav”。基本上,我希望外殼腳本的第二部分終止當插入充電器時。我嘗試使用無限循環和退出命令,但該命令無效。 腳本中的其他所有內容都可以按照我的要求工作。 這是我的代碼:

    #!/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

問題是play在前台運行,因此您的腳本會等待play結束,然后再繼續檢查充電狀態。

這是一個簡單的示例,該示例在后台播放聲音,等待五秒鍾,然后殺死播放器。 您可以用等待充電的東西代替sleep

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM