Perhatikan bahwa jawaban Tommi Kyntola bergantung pada wastafel yang akan digunakan sehingga Anda benar-benar bisa mendapatkan nomor wastafel.
Perhatikan juga bahwa itu bergantung pada indeks wastafel yang dinamai sama dengan indeks yang dihitung . Katakanlah, misalnya, kita memiliki 3 wastafel 1, 2 dan 3 dan 3 itu adalah wastafel pilihan kita, lalu kita putuskan sambungan nomor 2, meninggalkan kita dengan 1 dan 3. Sekarang Anda tidak dapat menghitung untuk tenggelam 3 dengan solusi Tommi Kyntola karena pactl list sinks | grep "^[[:space:]]Volume:"
hanya akan menghasilkan 2 bidang Volume, jadi perpipaan ke kepala / ekor untuk mendapatkan$SINK + 1
garis th tidak akan berfungsi. (Saya telah mengalami irl ini, saya tidak hanya melakukan nitpicking)
Solusi saya bekerja berdasarkan asumsi bahwa pacmd akan selalu daftar tenggelam dalam urutan tertentu. Jika Anda menginginkan solusi yang lebih andal, Anda perlu mengurai output.
#!/bin/sh
# Get the index of the selected sink:
getsink() {
pacmd list-sinks |
awk '/index:/{i++} /* index:/{print i; exit}'
}
# Get the selected sink volume
getvolume() {
pacmd list-sinks |
awk '/^\svolume:/{i++} i=='$(getsink)'{print $5; exit}'
}
getvolume
Catatan: Saya tidak tahu apakah bidang volume berbeda, milik saya terlihat seperti ini (dari pacmd list-sinks
):
volume: front-left: 42706 / 65% / -11.16 dB, front-right: 42706 / 65% / -11.16 dB
Saya juga hanya mendapatkan volume saluran pertama (kiri-depan) dalam format persentase (yaitu, bidang 5), saluran Anda mungkin ada di level yang berbeda.
EDIT:
Setelah dipikir-pikir, Anda mungkin benar-benar ingin mendapatkan nama bak cuci default dari pacmd stat
untuk solusi yang tidak berbelit-belit:
#/bin/sh
getdefaultsinkname() {
pacmd stat | awk -F": " '/^Default sink name: /{print $2}'
}
getdefaultsinkvol() {
pacmd list-sinks |
awk '/^\s+name: /{indefault = $2 == "<'$(getdefaultsinkname)'>"}
/^\s+volume: / && indefault {print $5; exit}'
}
setdefaulsinkvol() {
pactl $(getdefaultsinkname) $1
}
pactl list sinks
memberi Anda volume, tetapi tidak dalam format mudah yang bagus seperti set-sink-volume.