bash에서 볼륨 변경 sset Master playback 80%” man

나는 이것을 (에서 .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잘못된 방법을 사용 하고 있습니까? 아니면 트릭을 수행하는 다른 도구가 있습니까? ( alsamixer이 기능을 CLI 명령으로 사용하지 않는 것 같습니다.)

편집하다

마침내 작동하게 만들었습니다. 이것은 너무 오래 전에 (얼마나 슬프다!), 누가 무엇을 기여했는지 추적하지 못했습니다. 어쨌든 고마워. (아래 : 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%
}


답변

첫 번째 두 개의 별칭의 경우, 나타나는 +/- 가야 값이 상대의 변화로 취급하는 대신에 절대 값으로, (amixer man 페이지) :

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%
}