Bash에서 볼륨 변경

Bash에서 볼륨 변경

나는 여기까지 (에서 .bashrc) 얻었습니다:

alias i="amixer -c 0 -- sset Master playback +1dB"
alias d="amixer -c 0 -- sset Master playback -1dB"
alias v4="amixer -c 0 -- sset Master playback 40%"
alias v8="amixer -c 0 -- sset Master playback 80%"

페이지 를 올바르게 읽으면 처음 두 행이 작동해야 하며 man amixer오류 메시지가 생성되지 않지만 동작은 신뢰할 수 없습니다. 때로는 큰 변화가 있지만 대부분 아무 일도 일어나지 않습니다.

마지막 두 행이 작동합니다. 10개 정도의 별칭을 만들 수 있을 것 같아요. 그럼에도 불구하고 키보드 단축키에 바인딩되는 증가/감소 기능을 원합니다.

제가 amixer잘못된 방법을 사용하고 있는 건가요? 아니면 트릭을 수행할 수 있는 다른 도구가 있나요? ( alsamixerCLI 명령으로는 이 기능이 없는 것 같습니다.)

편집하다

마침내 작동하게 만들었습니다. 이건 너무 오래전 일이라(정말 슬프네요!) 누가 무엇을 공헌했는지 기억이 나지 않습니다. 어쨌든 감사합니다. (아래: bash 사용자는 를 입력하세요 .bashrc)

# volume
alias vol="alsamixer"
MASTER="amixer -q -c 0 sset Master playback"
alias i="$MASTER 2dB+"
alias d="$MASTER 2dB-"
alias mute="echo \" Audio muted.\"; $MASTER mute"
alias play="echo \" Audio un-muted.\"; $MASTER unmute"
alias unmute="play"
alias stop="mute"
v () {
  amixer -q sset Master playback $1%
}

답변1

처음 두 별칭의 경우 +/-를 사용해야 하는 것으로 보입니다.~ 후에절대값이 아닌 상대적 변화로 처리되는 값(믹서 매뉴얼 페이지):

alias i="amixer -c 0 -- sset Master playback +1db+"
alias d="amixer -c 0 -- sset Master playback +1db-"

나는 마지막 두 개(그리고 그들의 8명의 추정 형제)를 단일 쉘 함수로 대체할 것입니다:

v () {
  amixer -c 0 -- sset Master playback $i%
}

관련 정보