Vi presento in questa risposta due cose:
- L'opzione di utilizzo
afplay
, che riproduce file audio , per la notifica.
- i miei strumenti per la 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
Questo 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
,. Si noti che sto usando ;
piuttosto che &&
, in modo che possa avvisarmi di fallimento e di successo.
Prima di venire a conoscenzaafplay
, say
invece, parlavo messaggi. Il ruolo di è donebeep
stato interpretato da questo script:
#!/bin/bash
say -v Bruce "Done $(basename "$(pwd)"), $@." &
Questo script parla direttamente il codice di uscita invece di avere due messaggi diversi. Menziona anche il nome della directory corrente (per aiutare a chiarire quale compito viene svolto) e può essere dato un testo aggiuntivo da dire passando parametri all'alias (ecco perché l'alias ha "$@"
in esso). Nota il trailing in &
modo da non dover attendere il termine del discorso prima di ricevere un prompt.
La pagina man diafplay
è incompleta; afplay -h
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
grownlnotify
.