Presento in questa risposta due cose:
- L'opzione di utilizzare
afplay
, che riproduce i file audio , per la notifica.
- i miei strumenti per segnalazione dello stato di uscita insieme alla notifica.
Ho questo script, ~/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
Suona un suono diverso a seconda che l'argomento sia 0. Quindi ho un alias:
alias donebeep='(savestatus=$?; ~/bin/donebeep $savestatus "$@"; exit $savestatus)'
(Che abbiano lo stesso nome è irrilevante e probabilmente una cattiva idea.)
Per usarlo nel tuo esempio, svn update . && ant clean build start; donebeep
. Tieni presente che sto utilizzando ;
anziché &&
, in modo che possa notificarmi in caso di errore oltre che di esito positivo.
Prima di Ho imparato circa afplay
, ho usato say
per parlare invece di messaggi. Il ruolo di donebeep
è stato interpretato da questo script:
#!/bin/bash
say -v Bruce "Done $(basename "$(pwd)"), $@." &
Questo script pronuncia direttamente il codice di uscita invece di avere due messaggi diversi. Indica anche il nome della directory corrente (per aiutare a chiarire quale attività è stata eseguita), e può essere dato del testo aggiuntivo per dire passando i parametri all'alias (ecco perché l'alias ha "$@"
in esso). Tieni presente la percentuale di trascinamento% co_de in modo che non sia necessario attendere la fine del discorso prima di ricevere una richiesta.
La pagina man per &
è incompleto; afplay
elenca tutte le opzioni:
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