发出快速、连续的终端警报

发出快速、连续的终端警报

我想在标准终端应用程序中运行的自动脚本中发出 2-3 条快速、连续的警报。

我已经能够使用 发出单个警报echo -e '\a'。但是,当我尝试使用 发出多个警报时echo -e '\a\a',两个警报之间有明显的(约 1 秒)延迟。

如果我以交互方式输入命令,我可以通过输入echo -e '\a'、按向上箭头检索最后一个命令并再次按回车键来触发快速、连续的警报。除了我输入第二个命令所花的时间外,第一个和第二个警报之间没有明显的延迟。

但是,我希望能够通过自动脚本执行此操作,因此我希望能够避免警报之间的延迟,而不必通过键盘手动输入命令。

规格:MacBook Pro(14 英寸,2021 年)/ Apple M1 Pro 芯片 / macOS Monterey 12.3.1

目的是能够发出远程执行的长时间运行命令的失败/成功信号。在本地运行这些类型的命令时,我使用包装器say通过文本转语音告诉我命令是成功还是失败。对于远程执行的命令,如果文本转语音不是选项或不值得麻烦,我希望能够使用警报数量来了解命令的状态,而无需在多个警报之间长时间延迟。

答案1

看来你不能同时发出两声蜂鸣。

两声哔声之间必须稍作停顿。

我建议您使用以下功能来运行您想要的蜂鸣声量:

beepFunction () {
        for ((i=0 ; i<$1 ; i++))
        do
                echo -e "\a"
                sleep 0.2
        done
}

这里我们用“sleep”来暂停0.2秒。

然后您可以用这种方式调用该函数:

# 4 beep
beepFunction 4

如果您更喜欢单行解决方案,则可以使用以下代码:

# 4 beep (0 to 3)
for v in {0..3} ; do echo -e "\a" ; sleep 0.2 ; done

相关内容