在bash脚本中设置系统卷(在linux中)

时间:2013-10-04 06:30:52

标签: linux bash audio alsa

我需要在bash脚本中设置系统卷,但我不知道如何执行此操作。 我应该使用alsactl吗?我可以使用/proc/sys中的某些值吗?

3 个答案:

答案 0 :(得分:4)

您应该使用amixer工具。

运行不带参数的amixer以获取调音台控件列表 使用这样的命令:

amixer set Master 50%     # set absolute
amixer set Master 2dB+    # set relative
amixer set Master unmute

答案 1 :(得分:2)

您也可以使用pactl

pactl set-sink-volume 0 60%  # set absolute
pactl set-sink-volume 0 +10% # set relative
pactl set-sink-mute 0 0      # unmute

特别是,pactl set-sink-mute 0 0取消静音命令适用于我amixer set Master unmute没有的计算机。

答案 2 :(得分:0)

〜/ bin中有一个不错的vol脚本,可以帮助我实现窍门...

#!/bin/sh

export XDIALOG_NO_GMSGS=1

case ${1} in
    +|-) VOL=( $(amixer set Master 10dB${1} |tail -1|tr -d "[]") )
        Xdialog --no-buttons --title "Vol" --infobox ${VOL[3]} 50x30+32+32 ;;
    *[0-9]) VOL=( $(amixer set Master "${1}%" |tail -1|tr -d "[]") )
        Xdialog --no-buttons --title "Vol" --infobox ${VOL[3]} 50x30+32+32 ;;
    *) printf "Usage: vol [+]|[-]|[0-100]\n" >&2 ;;
esac

如果您没有安装Xdialog,则简单的echo $ {VOL [3]}将为您提供一些alsamixer反馈。