![每次提示我输入命令时,如何让终端提示符发出声音?](https://linux22.com/image/979621/%E6%AF%8F%E6%AC%A1%E6%8F%90%E7%A4%BA%E6%88%91%E8%BE%93%E5%85%A5%E5%91%BD%E4%BB%A4%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E8%AE%A9%E7%BB%88%E7%AB%AF%E6%8F%90%E7%A4%BA%E7%AC%A6%E5%8F%91%E5%87%BA%E5%A3%B0%E9%9F%B3%EF%BC%9F.png)
我希望每次命令提示符(即命令结束时)时都能发出声音来引起终端的注意[as i am using laptop \a character is not going to work with me]
。
我想要运行的命令是:mplayer /home/naruto/Music/sfx_msg-highlight.wv &> /dev/null &
我把它放在 sound.sh 文件中,并使它可以访问,但是当我将 ./sound.sh 添加到我的 .bashrc --> ps1 时,它只会打印它 [您还可以在后台看到我的 ps1]。
那么如何让它工作呢?
答案1
我找到了答案,
只需\[$(COMMAND)
在每个终端提示符下运行一个命令即可。
对我来说,我只需将命令放在脚本中,然后通过\[$(~/sound2.sh \# \u)
在 .bashrc 文件中将其放在 ps1 变量的末尾和结尾 ` --> 之前来运行它
,脚本如下:
if [ $1 = 1 ]; then
spd-say "Welcome $2" &
else
mplayer /home/naruto/Music/sfx_msg-highlight.wv &> /dev/null &
fi
该脚本接受两个参数:
$1
是输入到此 shell 会话中的命令数。要知道你是否刚刚打开了终端,那么终端会说你好,然后$2
当前用户名,如果您每次输入命令时收到提示,它都会播放声音文件以引起我的注意,我正在运行的命令已经完成。
以下是我的 ps1,供喜欢它的人参考:
PS1='${debian_chroot:+($debian_chroot)}\[\033[0;43m\]\[\033[1;34m\]██▓▒░\[\033[1;32m\]\u\[\033[1;30m\]⌘ \[\033[1;32m\]\h:\[\033[1;31m\]\w░▒▓█\[\033[0;31m\]█▓░\[\033[0;32m\]⇒᚜\!:\#᚛\[\033[00m\]\$ \[$(~/sound2.sh \# \u)'
我的终端如下所示:
答案2
将以下任意一行放在用户输入语句之前。
echo -en "\007"
或者
echo -ne '\a' and printf '\a'