Уведомления Growl о завершении задачи Shell

Уведомления Growl о завершении задачи Shell

(Специально для 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"

Связанный контент