Ошибка mknod при попытке сделать файл драйвера устройства с оболочкой

Мой код

#!/bin/sh
major=$(awk '$2=="module_dev" {print $1}' /proc/devices)
echo $major
mknod /dev/module_dev c $major 0

Я практикую драйверы символьных устройств, и это один из примеров. Приведенный выше код должен создать файл драйвера устройства в /dev/, но есть ошибка, которая говорит

mknod: missing operand after '0'(it could be wrong because it's just a translation)
for more information type 'mknod --help'

Это сообщение было показано, когда я пытался создать файл драйвера устройства (sh ***.hЯ понятия не имею, в чем проблема. (insmod уже сделано)

1 ответ

Наиболее вероятной причиной этой ошибки является то, что $major не имеет значения. То есть, $major пусто

У вас там есть эхо: что оно показывает? Если вы ничего не видите, вы можете улучшить его, чтобы ничего не показывать просветляюще;

echo "major='$major'"

который будет производить что-то вроде

major='213'

если все хорошо, и показывать пустые кавычки, если он работает, как я подозреваю.

Другие вопросы по тегам