Конструкция -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
Определение устройства 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"
}
}