Я представляю в этом ответе две вещи:
- Возможность использования
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)"), $@." &
Этот сценарий говорит код выхода напрямую, вместо двух разных сообщений. В нем также упоминается имя текущего каталога (чтобы уточнить, какая задача выполнена), и может быть дан дополнительный текст для передачи, передавая параметры псевдониму (поэтому псевдоним "$@"
в нем есть). Обратите внимание на трейлинг, &
чтобы вам не нужно было ждать окончания речи, прежде чем получать подсказку.
Страница людей для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
.