我正在尝试运行这个脚本:
test.sh
#!/bin/bash
BAT_LEVEL=`acpi -b |grep -Eo "[0-9]+%"|grep -Eo "[0-9]+"`
CRIT=0
if [ $BAT_LEVEL -gt $CRIT ]; then
echo "foo"
aplay ~/apert.wav
notify-send "Battery-Low"
echo "bar"
fi
上面的第六行notify-send "Battery-Low"
就像您在终端中所期望的那样工作。
但是当脚本执行时,它只是在标准输出上foo
吐出bar
。
我不知道问题是什么。
答案1
您缺少一些环境变量,很可能就是这个DISPLAY
。您可以尝试以下操作:
echo "foo"
DISPLAY=:0.0 notify-send "Battery-Low"
echo "bar"
如果这没有帮助,您可以通过在脚本和终端中运行命令来比较脚本内和终端中的环境env
。
另请注意,如果脚本以 root 身份运行,您可能必须执行以下操作:
sudo -u yourUsername DISPLAY=:0.0 notify-send 'Battery low'