「LinuxDeviceDrivers3rd ed」の勉強を始めましたが、次のスクリプトの構文を理解するのに苦労しています。私は基本的なシェルスクリプトを知っており、基本的なプログラムを作成するためにawkユーティリティを使用できます
Q1)/ sbin / insmod ./$module.ko $ * || 出口1a)insmodのフルパスを述べる必要は何でしたか?b)実行可能ファイルを呼び出すために./を使用しましたが、コマンドの途中で./が表示されたことはありません。c)$ module = scul ??? d)$ *はどういう意味ですか?e)ダブルバットは何のために?
Q2)major = $(awk "\ $ 2 = = \" $ module \ "{print \ $ 1}" / proc / devices)このawkステートメントがスカルデバイスを取得するために実行する手順は何ですか?二重スラッシュ'\'と二重等号は取得できません。
#!/bin/sh
module="scull"
device="scull"
mode="664"
# invoke insmod with all arguments we got
# and use a pathname, as newer modutils don't look in . by default
/sbin/insmod ./$module.ko $* || exit 1
# remove stale nodes
rm -f /dev/${device}[0-3]
major=$(awk "\\$2= =\"$module\" {print \\$1}" /proc/devices)
mknod /dev/${device}0 c $major 0
mknod /dev/${device}1 c $major 1
mknod /dev/${device}2 c $major 2
mknod /dev/${device}3 c $major 3