set -- "BRD" "MIX"
for src in /home/imp/imp/msgs/*.PK[12]; do
eval "dest=\${src%.*}.\${${src#${src%?}}}"
/usr/bin/mv "$src" "$dest"
done
Основная идея заключается в том, что мы сохраняем отображение расширения имени файла src в новое расширение с помощью массива «$ @».
$ src
содержит name.PK1
$ {src%. *}
содержит name
$ {src # $ {src%?}}
содержит 1
, таким образом, dest
оценивается как "имя" "." "BRD" = "name.BRD"
В хороших старых временах звуковых карт ISA это не было возможно создание узлов устройств в / dev /
динамически, поэтому все устройства должны быть предварительно выделены. Это привело к ограничению в 8 звуковых карт, и драйверы были написаны с учетом этого ограничения.
Позже, когда были представлены devfs и USB, это ограничение было снято.Однако самый простой способ сделать это - внести минимальное количество изменений, то есть просто изменить верхний предел.
Переписать код, чтобы разрешить бесконечное количество карт, потребовало бы больших усилий без каких-либо конкретных преимуществ. (Можно увеличить текущее значение по умолчанию, равное 32, с помощью параметра конфигурации ядра, но люди, которые попробуйте, как правило, выясните, что у них недостаточно пропускной способности USB для такого количества устройств.)