我的密码

#!/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/

10-11 17:49