3

私のコード

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

私はキャラクター デバイス ドライバーを練習していますが、これはその例の 1 つです。上記のコードは、/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すでに行われています)

4

1 に答える 1

0

このエラーの最も可能性の高い原因は$major、値がないことです。つまり、$major空白です。

そこに echo ステートメントがあります。それは何を示していますか? 何も表示されない場合は、何も表示しないように拡張することをお勧めします。

echo "major='$major'"

次のようなものを生成します

major='213'

すべてが順調であれば、私が思うように機能している場合は空の引用符を表示します。

于 2014-03-25T21:08:30.967 に答える