簡體   English   中英

在bash腳本中設置系統卷(在linux中)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM