pactl list sinks | grep '^[[:space:]]Volume:' | \
head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,'
那就是我所拥有的。它不是很整洁,但足以供我使用。我找不到办法。的pactl
刚刚似乎并没有得到有上市的任何手段只有一个水槽,但它们都打印在按升序排列。因此,使用tail
和选择第n行head
。请注意,音量行可能会为左右声道sed
分配单独的音量,而该替代品只会选择第一个,因为我只需要那个。
作为记录,我使用 pactl list sinks short
来获取我的活动接收器编号:
pactl list short | grep RUNNING | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,'
编辑2017-10-05:由于pulseaudio的变化,我不得不稍作调整。这是我现在所拥有的:
SINK=$( pactl list short sinks | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,' | head -n 1 )
NOW=$( pactl list sinks | grep '^[[:space:]]Volume:' | head -n $(( $SINK + 1 )) | tail -n 1 | sed -e 's,.* \([0-9][0-9]*\)%.*,\1,' )
我将其MOD
设置为+10或-10,并进行了一些边界检查,最后:
pactl set-sink-volume $SINK ${MOD}%
pactl list sinks
给你的音量,但不是像set-sink-volume这样的简单格式。