
(Специально для OSX)
Я, как и многие другие, кроме меня, часто обнаруживаю, что запускаю процесс в оболочке, который занимает минуту или две (например, большой коммит svn). В это время я часто alt-tab и обновляю reddit/slashdot/wikipedia/что угодно. Было бы здорово настроить что-то, что публикует уведомление growl, когда процесс оболочки завершается.
В моем идеальном мире это работало бы так: «Если процесс только что завершил работу на открытой в Терминале вкладке, отправить уведомление с рычанием».
У кого-нибудь еще есть что-то подобное?
решение1
Вы можете установитьрычатьуведомлятьсделать это.
$ ./some_program && growlnotify Title -m Message
Конечно, вам нужно будет подумать об этом перед выполнением команды. Альтернативой (хотя я не знаю, как этого добиться) было бы уведомление Growl для каждой команды, что было бы безумно раздражающим.
Чтобы упростить использование growlnotify в вашем случае, отредактируйте ~/bash_profile
и добавьте следующее:
function long {
$@
/usr/local/bin/growlnotify Finished -m 'Done'
}
теперь вы можете просто long your_command
(аналогично sudo
). Ctrl-A
разместить курсор в начале строки, если вы (как и я) всегда сначала вводите саму команду, а затем вам нужно добавить префикс.
К сожалению, моего bash-fu недостаточно, чтобы добавить команду в growlnotify
сообщение.
согласно комментарию @mankoff к этому ответу:
Вы можете просто печатать во время выполнения команды, она будет выполнена после этого. Я создал следующую функцию для себя:
function gn {
/usr/local/bin/growlnotify Finished -m "$@"
}
Использовать как gn svn
.
решение2
Что вам нужно, так growlnotify
это CLI-программа для запуска уведомлений рычания. Вы можете использовать ее как:
./script.sh;; growlnotify -m "done"
У него есть еще несколько ручек, с которыми можно поиграться, используйте growlnotify -h
для получения дополнительной информации
решение3
Если немного изменить ответ Дэниела Бека, то он станет очень приятным.
function long {
command=$@
$command
/usr/local/bin/growlnotify Finished -m "$command completed."
}
Затем при запуске «long svn up» вы увидите сообщение «svn up завершено».
Очень удобно, если вы одновременно запускаете много трудоемких скриптов оболочки.
решение4
Использоватьрычатьуведомлять.
ls && growlnotify -H localhost -m "message"