Я в цій відповіді представляю дві речі:
- Можливість використання
afplay
звукових файлів для сповіщення.
- мої інструменти для звітування про стан виходу разом із сповіщенням.
У мене є цей сценарій ~/bin/donebeep
:
#!/bin/bash
if [ "$@" = 0 ]; then
afplay -v 2 /System/Library/Sounds/Blow.aiff &
else
afplay -v 2 /System/Library/Sounds/Sosumi.aiff &
fi
Це відтворює різний звук залежно від того, чи є аргумент 0. Тоді у мене є псевдонім:
alias donebeep='(savestatus=$?; ~/bin/donebeep $savestatus "$@"; exit $savestatus)'
(Те, що вони мають одне ім’я, не має значення і, мабуть, погана ідея.)
Для того, щоб використовувати його в вашому прикладі, svn update . && ant clean build start; donebeep
. Зауважте, що я використовую, ;
а не &&
так, щоб він міг сповістити мене про невдачу та успіх.
Перш ніж я дізнався про цеafplay
, я раніше say
говорив повідомлення. Роль donebeep
відіграла цей сценарій:
#!/bin/bash
say -v Bruce "Done $(basename "$(pwd)"), $@." &
Цей скрипт говорить безпосередньо вихідним кодом, а не двома різними повідомленнями. Він також згадує ім'я поточного каталогу (щоб допомогти уточнити, яке завдання виконується), і йому можна надати додатковий текст, щоб сказати, передаючи параметри псевдоніму (тому псевдонім має "$@"
в ньому). Зверніть увагу на &
те, що вам не потрібно чекати завершення виступу, перш ніж отримати підказку.
Сторінка man дляafplay
неповна; afplay -h
перелічує всі варіанти:
Usage:
afplay [option...] audio_file
Options: (may appear before or after arguments)
{-v | --volume} VOLUME
set the volume for playback of the file
{-h | --help}
print help
{ --leaks}
run leaks analysis {-t | --time} TIME
play for TIME seconds
{-r | --rate} RATE
play at playback rate
{-q | --rQuality} QUALITY
set the quality used for rate-scaled playback (default is 0 - low quality, 1 - high quality)
{-d | --debug}
debug print output
grownlnotify
.