我的密码
#!/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
已经完成) 最佳答案
造成此错误的最可能原因是$major
没有值。即,$major
为空白。
您在那里有echo语句:它显示什么?如果您什么都看不到,则可能需要对其进行增强以使所有内容都不会发亮。
echo "major='$major'"
会产生类似
major='213'
如果一切正常,并且像我怀疑的那样工作,请显示空引号。
关于shell - 尝试使用Shell制作设备驱动程序文件时出现mknod错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22572378/