-   Linux - Newbie (
-   -   bash programming (

cpukiller 11-04-2003 07:36 PM

bash programming
hi all!

i'm trying to write a script that "insmod" a kernel module i wrote and then create the dev file in the /dev/ directory. once my module is loaded, he has an entry in the /proc/modules and /proc/devices files. So, I want to get the major # of the device specified in the /proc/devices file. Here's my script:



tput reset
echo Installation du module ioperm.o...
insmod ioperm.o &> /dev/null
if [ "$?" = "0" ]; then
echo chargement du module réussi
echo erreur lors du chargement du module
echo script terminé...
echo Cherche le numéro de device attribué par insmod...
grep $DEVICE_PROC_NAME /proc/devices > $CONFIG_FILE
echo Le fichier de configuration $CONFIG_FILE a été mis à jour
conf=$(cat $CONFIG_FILE)
echo conf=$conf
num=$(expr substr $conf 1 3)
echo Le numero du device est $num
echo Création du fichier device...
mknod $DEVICE_FILE_NAME c $num 0
echo Tout est ok... script terminé!

the config file will be use by programs accessing the driver. The variable 'conf' contain the config line for my device file(ex.: "253 ioperm"). I have to take the number at the beginning(253) and use it with mknod. When i execute it, it says that i made a typo error in the line -> num=$(expr substr $conf 1 3). i don't understand why. this line works if i replace $conf by another normal string variable like $CONFIG_FILE.

If someone as an idea on how to solve it or even an other way for retrieving the major # of a driver in /proc/devices, please let me know.

LogicG8 11-04-2003 07:45 PM

Please use the [ code ] [ /code ] tags (without the spaces.)

num=`cat $CONFIG_FILE | cut --delim=' ' -f1`

All times are GMT -5. The time now is 04:23 PM.