Это может быть довольно сложное решение, но оно делает то, что мне нужно.
В моем файле .bashrc, я добавил следующие:
#ensure that the call is made only once, preventing an infinite loop
if [ $SHLVL == 1 ]
then
script -afq ~/custom/log.txt #log everything that happens in the shell
fi
#call my script only once by checking for another instance of it
if [[ ! $(pidof -x script.sh) ]]
then
~/custom/script.sh&
fi
Мои проверки файлов script.sh изменений в log.txt и воспроизводит звуковой сигнал (вам необходимо скачать его), когда это произойдет:
#!/bin/bash
$(stat -c %y ~/custom/log.txt > ~/custom/update.txt)
while :
do
now=$(stat -c %y ~/custom/log.txt)
update=$(cat ~/custom/update.txt)
if [ "$now" != "$update" ]
then
$(stat -c %y ~/custom/log.txt > ~/custom/update.txt)
$(play -q ~/custom/beep.ogg vol 0.1) #props to franklin
fi
done
Это сделает это так, что каждый раз, когда что-то меняется в оболочке, в том числе набора текста, script.sh будет работать play
. Теперь я узнаю всякий раз, когда есть запрос на мой сервер WEBrick, без необходимости смотреть на терминал.
Работает ли символ колокола? 'echo -e" \ a "' – August
Попробуйте это. http://unix.stackexchange.com/questions/8607/how-can-i-play-a-sound-when-script-execution-is-ready В основном просто используйте разделитель ';', чтобы сообщить BASH, чтобы выполнить звук файл после завершения первой команды. – franklin
Я просто получаю пустую строку. –