Tôi trình bày trong câu trả lời này hai điều:
- Tùy chọn sử dụng
afplay
, phát các tệp âm thanh , để thông báo.
- công cụ của tôi để báo cáo tình trạng thoát cùng với thông báo.
Tôi có kịch bản này , ~/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
Điều này phát ra một âm thanh khác nhau tùy thuộc vào việc đối số có bằng 0. Sau đó tôi có bí danh:
alias donebeep='(savestatus=$?; ~/bin/donebeep $savestatus "$@"; exit $savestatus)'
(Rằng họ có cùng tên là không liên quan và có lẽ là một ý tưởng tồi.)
Để sử dụng nó trong ví dụ của bạn , svn update . && ant clean build start; donebeep
. Lưu ý rằng tôi đang sử dụng ;
chứ không phải &&
, để nó có thể thông báo cho tôi về thất bại cũng như thành công.
Trước khi tôi biết vềafplay
, tôi thường say
nói chuyện với tin nhắn. Vai trò của donebeep
kịch bản này:
#!/bin/bash
say -v Bruce "Done $(basename "$(pwd)"), $@." &
Kịch bản lệnh này nói mã thoát trực tiếp thay vì có hai thông báo khác nhau. Nó cũng đề cập đến tên của thư mục hiện tại (để giúp làm rõ nhiệm vụ nào được thực hiện) và có thể được cung cấp thêm văn bản để nói bằng cách chuyển tham số cho bí danh (đó là lý do tại sao bí danh có "$@"
trong đó). Lưu ý dấu vết &
để bạn không cần đợi bài phát biểu kết thúc trước khi nhận được lời nhắc.
Các trang người đàn ông choafplay
là không đầy đủ; afplay -h
liệt kê tất cả các tùy chọn:
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
.