我编写了一直运行的简单脚本,每当文件大小发生更改时,它都会向终端写入类似“大小已更改”之类的内容,但不是终端消息,是否有可能实际得到一些提示或警报声音就像C语言一样?
答案1
在 C 中,您可以输出 BEL 字符 '\a'。在脚本中,您可以这样做:
echo -e '\a'
如果您没有听到声音,请务必检查是否有
blacklist pcspkr
在你的/etc/modprobe.d/blacklist.conf
(如果有的话将其注释掉并重新启动)。
或者,如果您有一个不错的声音短声音文件xyz.mp3
,并且已经vlc
安装,您可以执行以下操作:
cvlc --no-one-instance --volume 100 --quiet --no-loop --no-repeat --play-and-exit xyz.mp3
答案2
如果您的终端没有发出任何声音,它仍然(更有可能)发出可见的警报:
tput flash
对于大多数系统来说,tput
接受terminfo
名称包括flash
.这术语信息ncurses 手册说:
flash_screen flash vb visible bell (may
not move cursor)
和
If the terminal has a way of flashing the screen to indi-
cate an error quietly (a bell replacement) then this can
be given as flash; it must not move the cursor.
一些实现仅接受 termcap 名称。某些终端模拟器不会使用任何方法使屏幕闪烁(并且在 ncurses 中)终端数据库,首选终端描述不包括该功能)。其中一些可能会设置TERM
为xterm
(但是xterm
本身有效)。