LINUX.ORG.RU

amixer: определить, включён ли канал

 ,


1

2

Всем здравствуйте.

Вот прямо сейчас amixer для канала, например, Master, выводит следующее:

$ amixer get Master
Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 87
  Mono: Playback 87 [100%] [0.00dB] [on]

Соотв., я могу определить, включён ли канал (mute/unmute), вот так:

amixer get Master | tail -n1 | grep -qF '[on]'

Вопрос: есть ли более простой способ? Я не нашёл способа воздействовать на код возврата amixer.

★★★★

Я не нашёл способа воздействовать на код возврата amixer.

Так не важно замьючен канал или нет, команда выполняется успешно, так что код возврата и должен быть нулевым

Можно вот так:

amixer cget numid=4,iface=MIXER,name='Master Playback Switch' | grep -q 'values=on'

Завершиться с 1 если замьючен (но опять таки это код от grep, а не от amixer). Список этих контролов по amixer controls.

Хотя опять таки особой разницы с вашим вариантом тут нет.

micronekodesu ★★ ()
Последнее исправление: micronekodesu (всего исправлений: 1)