[英]Setting system volume in a bash script (in linux)
我需要在bash脚本中设置系统卷,但我不知道如何执行此操作。 我应该使用alsactl
吗? 我可以使用/proc
或/sys
中的某些值吗?
你应该使用amixer工具。
运行不带参数的amixer
以获取混音器控件列表。
使用这样的命令:
amixer set Master 50% # set absolute
amixer set Master 2dB+ # set relative
amixer set Master unmute
你也可以使用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
命令在我的计算机上工作,其中amixer set Master unmute
没有。
我的〜/ 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反馈。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.