如果脚本出错,则播放警报

时间:2012-03-23 03:14:09

标签: bash alert

我在BASH中运行各种脚本。它们使用各种程序,但主要用于编译。 E.g:

#!/bin/bash
cp file1.txt file2.txt
pdflatex file.txt
bibtex file
pdflatex file.txt

有时,程序会遇到错误,会打印出来并停止脚本完成。有没有办法让BASH脚本触发铃声,通知我发现错误并且脚本已停止?

3 个答案:

答案 0 :(得分:6)

您可以使用trap命令定义退出功能并通知您:

function exit_shell {
    echo -e "Goodbye!\a"
}
trap exit_shell 1 2 3 4 5 6 7 8 10 11 12 13 14 15

# And the rest of your script goes here...

这样,几乎所有信号(除了9KILL都无法捕获)将导致您的函数执行。 \a将以硬件独立的方式发出终端铃声(虽然它几乎总是ASCII 0x07)。

但是,为什么要将自己限制在一个可能听不到的铃声上。您可以使用mail命令和手机服务提供商的电子邮件网关向自己发送短信。例如,在Verizon中,您可以发送电子邮件至 phone@vtext.com ,其中 phone 是您的电话号码,无需破折号。

function exit_shell {
    echo -e "Goodbye!" | mailx -s "Command failed!" $phone@vtext.com
}
trap exit_shell 1 2 3 4 5 6 7 8 10 11 12 13 14 15

或者,您可以找到command line Twitter clientFacebook client并使用您的状态更新所有朋友。

答案 1 :(得分:3)

echo -e "\007"

007是BEL或铃声的ASCII码。

这个系统发出哔哔声?

答案 2 :(得分:1)

除了cctan答案中的终端铃声(可以禁用),没有通用的方法可以做到这一点。在Linux中,“aplay”命令可用于从命令行播放声音文件。