Существует ли способ сделать хвост-F звуковым сигналом?

Можно использовать amixer. Это находится в alsa-utils пакет на Ubuntu и Debian.

Выполненный amixer без параметров для получения обзора о средствах управления для устройства по умолчанию.

Можно также использовать alsamixer без параметров (от того же пакета) для получения более визуального обзора. Используйте F6, чтобы видеть и переключиться между устройствами. Обычно у Вас могли бы быть PulseAudio и аппаратная звуковая карта для выбора из.

Затем используйте amixer с set управляйте для регулирования громкости. Например, для установки основного канала на 50%:

amixer set Master 50%

Master имя элемента управления и должно соответствовать тому, которое Вы видите при выполнении без параметров.

Отметьте % знак, без него он будет рассматривать значение как 0 - 65 536 уровней.

Если PulseAudio не является Вашим устройством по умолчанию, Вы, сила может использовать -D переключатель:

amixer -D pulse set Master 50%

На другие полезные команды указывают в комментариях:

Увеличиться/уменьшить использование объема +/- после числа использовать

amixer set Master 10%+
amixer set Master 10%-

Для отключения звука не отключите звук или переключитесь между состоянием с отключенным звуком/нес отключенным звуком, используйте

amixer set Master mute
amixer set Master unmute
amixer set Master toggle

Также обратите внимание, что могло бы быть два различных масштаба процента, сырые данные по умолчанию и для некоторых устройств более натуральный звукоряд на основе децибела, который также используется alsamixer. Использовать -M использовать последнего.

Наконец, если Вы интересуетесь PulseAudio только, Вы могли бы хотеть проверить pactl (см. один из других ответов).

23
23.11.2011, 22:34
6 ответов

Идея могла бы состоять в том, чтобы передать вывод по каналу tail через sed и замените новую строку звонком/новой строкой.

Но существует propably более легкое решение, если Вы используете tail в X-окне. Там Ваш может выполнить действие когда содержание изменений окна (мерцание, звонок, безотносительно).

13
27.01.2020, 19:42
  • 1
    Не замените новую строку, добавьте его в конце строки. –  Kevin 23.11.2011, 21:42
  • 2
    @Nils, это sed Идея является блестящей, но я не знаю, что достаточно 'sed' заставляет ее работать, похоже, что я не могу получить новые строки в regexpt обычный путь (что я привык к), я предполагаю, что должен сказать, что sed не интерпретируют поступление, упрощают с методической точностью. –  Ali 23.11.2011, 22:13
  • 3
    @Ali Действительно, sed действует линию за линией, и Вы непосредственно не видите новых строк. sed -e $'s/$/\a/' добавляет a $'\a' (символ звонковой сигнализации в ksh/bash/zsh синтаксисе) в конце каждой строки. проверка –  Gilles 'SO- stop being evil' 23.11.2011, 22:35
  • 4
    Спасибо @Gilles, работал как очарование (на Mac также)! sed regexpt немного нечетен к моим наивным глазам. прохладный –  Ali 23.11.2011, 22:38
  • 5
    @Gilles: Обратите внимание что $'...' синтаксис не универсален. Например, [t] csh не поддерживает его. –  Keith Thompson 23.11.2011, 23:13

если Вы используете GNU screen, можно установить его для "наблюдения" окна с хвостом, и это предупредит Вас в Вашей строке состояния, или определенным звонком Вашего termcap, что существует новый вывод в том окне.

http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor


править: просто должен был добавить это, так как Вы упомянули Mac OS X

только для забавы при поиске чего-то в частности, можно использовать Mac OS X say управляйте для чтения Вас файл, который Вы наблюдаете. просто доберитесь logtail команда, от:

http://www.hmug.org/pub/MacOS_X/BSD/Administration/Log/logcheck/

И используйте его в сценарии как:

#!/bin/bash

file=$1
offset=$(basename "$1")

# while true... let this thing run until it's killed...
while true; do
    output=$(/usr/local/bin/logtail $file .${offset}.offset)
    if [ ! -z "$output" ]; then

        # print the output and say ding
        echo "$output" && say ding
        # to have the file read aloud to you, uncomment the following:
        say "$output"

        fi
    # recheck every 5 seconds
    sleep 5
done
13
27.01.2020, 19:42
  • 1
    Спасибо @Tim, screen , шоу и предупреждение (я предполагаю, что могу заставить его позвонить в звонок также), ТОЛЬКО ОДНАЖДЫ. Не для каждого нового события, которое происходит (не для каждой новой строки, которая доступна) –  Ali 23.11.2011, 22:11
  • 2
    я добавил пример для Mac, который мог считать файл в Вас. Вы могли изменить это для работы на Linux путем установки версии Linux logtail и использования beep команда, вместо say. –  Tim Kennedy 23.11.2011, 22:29
  • 3
    ! Это является творческим, хотя в моем случае я использую звуковой сигнал, чтобы смочь контролировать файл журнала, не смотря на экран. И фактический звуковой сигнал может быть лучше, чем речь. –  Ali 23.11.2011, 22:40
  • 4
    Может также использовать экран exec команда, чтобы сделать это также. Пример в странице справочника !:sed -n s/.*Error.*/\007/p который отправит звонок, каждый раз "Ошибка" отображен в том окне. –  Arcege 24.11.2011, 04:57
  • 5
    То же относится к Tmux. эхо –  0xC0000022L 15.09.2017, 12:51

Вы могли использовать мультихвост. Это - расширенный хвост, который поддерживает выполнение команды на соответствии регулярного выражения.

Например, следующая команда играет звук и открывает xmessage окно каждый раз, когда марсианский пакет источника зарегистрирован.

multitail -ex "martian source" "play beep.wav; xmessage " -i /var/log/messages
10
27.01.2020, 19:42

Только для справки, поскольку @Nils предположил, что я использую sed добавить a bell к каждой строке.

sed строка обеспечивается @Gilles

sed -e $'s/$/\a/' 

работы над моим Mac (я включил "слышимый звонок" и "визуальный звонок" в моем Terminal\preferences\advanced).

4
27.01.2020, 19:42
  • 1
    Знаменитый это $'...' escape-последовательности являются вещью только для Bash. –  amphetamachine 24.11.2011, 06:12
  • 2
    @amphetamachine благодарит, в то время как я - пользователь удара сам, было бы хорошо, если бы Вы или другие можете добавить версии, которые работали бы над другими оболочками также. –  Ali 24.11.2011, 06:21
  • 3
    я - также пользователь удара, но я медленно изучаю то, что будет и не будет работать в других оболочках. –  amphetamachine 24.11.2011, 08:44

Можно попробовать konsole который позволяет предупреждение на новом действии (или тишина) на любой данной вкладке.

0
27.01.2020, 19:42
  • 1
    я воображаю konsole был бы похож screen это предупреждает однажды, в то время как я должен получить предупреждение для каждой новой строки. –  Ali 24.11.2011, 04:40

Для всех, кто найдет эту страницу, я использую tcsh, и это, кажется, работает:

tail -f changingfile | sed -e 's/.*/& \a/'

Не спрашивайте меня, что означает синтаксис седа...

1
27.01.2020, 19:42

Теги

Похожие вопросы