【问题标题】:Playing an alert if a script has an error如果脚本有错误,则播放警报
【发布时间】:2012-03-23 03:14:08
【问题描述】:

我在 BASH 中运行各种脚本。这些使用各种程序,但主要用于编译。例如:

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

有时,程序会遇到错误,它会打印出错误并阻止脚本完成。有什么方法可以让 BASH 脚本触发铃声,通知我发现错误并且脚本已停止?

【问题讨论】:

    标签: bash alert


    【解决方案1】:

    您可以使用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 并用您的状态更新所有朋友。

    【讨论】:

      【解决方案2】:

      echo -e "\007"

      007 是 BEL 或 bell 的 ASCII。

      这个系统发出哔哔声?

      【讨论】:

      • 这太棒了!两个竖起大拇指:)
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-19
        • 2019-01-02
        • 1970-01-01
        • 2022-09-29
        • 1970-01-01
        • 1970-01-01
        • 2011-02-05
        相关资源
        最近更新 更多