Что такое устройство PCM ALSA по умолчанию?

Конструкция -eqпредназначена для сравнения целых чисел и , а не строк. Вам нужен оператор проверки равенства =или ==с [[..]]или использование =с[..]

[..]гарантированно совместим с POSIX и должен работать в любой оболочке, в то время как [[..]]является специальной конструкцией bash/zsh, которая предоставляет больше возможностей для [. Также (..)вокруг чеков не вообще не нужны.

Так что чисто POSIX просто сделайте

read char
if [ "$char" = "Y" ] || [ "$char" = "y" ]; then
    printf 'matches Yes \n'
fi

Также другим вариантом POSIX может быть использование оператора caseкак

read char
case "$char" in
    [Yy]) echo "Yes" ;;
    [Nn]) echo "No"  ;;
    *) echo "incorrect" ;;
esac
1
15.01.2021, 19:28
1 ответ

Определение устройства defaultпо умолчанию можно найти в /usr/share/alsa/pcm/default.conf. Если он не перенаправляет на конкретный драйвер -по умолчанию, он определяется следующим образом:

pcm.!default {
    type plug
    slave.pcm {
        type hw
        card 2
    }
}

Плагин plugреализует автоматическое преобразование частоты дискретизации/формата.

Большинство драйверов имеют собственное defaultопределение. В частности, большинство устройств материнской платы обрабатывается /usr/share/alsa/cards/HDA-Intel.conf, который определяет что-то подобное, чтобы разрешить несколько клиентов :

.
pcm.!default {
    type asym
    playback.pcm {
        type plug
        slave.pcm "dmix:2"
    }
    capture.pcm {
        type plug
        slave.pcm "dsnoop:2"
    }
}
3
18.03.2021, 22:36

Теги

Похожие вопросы