Нужно получить текущее значение громкости.
В терминале выпоняется команда
amixer get Master playback
она даёт, допустим, такой вывод
Simple mixer control 'Master',0
Capabilities: pvolume pswitch pswitch-joined penum
Playback channels: Front Left - Front Right
Limits: Playback 0 - 65536
Mono:
Front Left: Playback 45876 [70%] [on]
Front Right: Playback 45876 [70%] [on]
Задача: каким-то шаблоном грепнуть этот вывод и записать значение(в данном случае 45876) в переменную.
Я посоветую так: Первым наперво тебе нужно отсортировать нужные строчки, дя этого есть команда grep. Она ищет нужные совпадения и выводит строку, туда куда ты ей скажешь, по умолчанию на экран. В твоем случаи можно так: grep "Front Left: Playback". Т.е.
amixer get Master playback | grep "Front Left: Playback"
вывод будет таким:
Front Left: Playback 45876 [70%] [on]
Дальше тебе надо перенаправить этот вывод на ввод команды cut - выводит выбранные части строк (столбцы) каждого заданного файла. В твоем случаи так:
amixer get Master playback | grep "Front Left: Playback" | cut -c 22-28
45876
И аналогично Right. Возможно есть более элегантный способ это реализовать, но я сделал так. Дело в том что тут ты зависишь от длины числа 45876 и если оно будет маленьким, то символы, стоящие за ним попадут в переменную, а это не good.
Ну а чтобы это дело записать в переменную, то так:
zvuk=`amixer get Master playback | grep "Front Left: Playback" | cut -c 22-28`
теперь переменная $zvuk равна тому выводу, что получится при выполнении такого конвейера.
Почитай маны, возможно найдешь решение по лучше, если с английским туго, как у меня например, то вот opennet.ru (http://www.opennet.ru/man.shtml)