[Résolu][awk]Problème de syntaxe

Problème de syntaxe [Résolu][awk] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 24-05-2005 à 18:18:38    

Bonjour,
 
A l'execution de ce script

#!/bin/sh
# install.sh
# install xxx shell script
 
module="xxx"
device="xxx"
mode="664"
 
# remove the module
rmmod xxx
 
# install the module
insmod ./xxx.ko $* || exit 1
 
# delete the node
rm -f /dev/${device}0
 
# get the major number
major=$(awk "\\$2==\"$module\" {print \\$1}" /proc/devices)
 
# create the node
mknod /dev/${device}0 c $major 0
 
# give group permission
group="staff"
grep -q '^staff:' /etc/group || group="wheel"
chgrp $mode /dev/${device}0
 
# change the node permissions
chmod $mode /dev/${device}0


j'ai les erreurs suivantes :

Code :
  1. [root@edtux k2.6]# ./install.sh
  2. awk: cmd. ligne:1: \=="xxx" {print \}
  3. awk: cmd. ligne:1: ^ la barre oblique inverse n'est pas le dernier caractère sur la ligne
  4. mknod: nombre erroné d'arguments
  5. Pour en savoir davantage, faites: « mknod --help ».
  6. chgrp: ne peut accéder `/dev/xxx0': No such file or directory
  7. chmod: ne peut accéder `/dev/xxx0': No such file or directory


Le fichier "/proc/devices" contient:


Character devices:
<...>
253 xxx
254 devfs
<...>


Je ne comprends pas les erreurs des lignes 2 et 3.
 
(inspiré du livre Linux Device Drivers 3rd edition page 47 chez O'Reilly)
 
Merci de votre aide,
 
Emmanuel


Message édité par Emmanuel Delahaye le 25-05-2005 à 09:33:25

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 24-05-2005 à 18:18:38   

Reply

Marsh Posté le 24-05-2005 à 18:30:23    

Bonjour,
es tu obligé d'utiliser awk pour récupérer le numéro majeur ?
avec cut et fgrep c'est possible
cat /proc/devices | fgrep $module | cut -f1 -d ' '


Message édité par jlighty le 24-05-2005 à 19:08:20
Reply

Marsh Posté le 24-05-2005 à 20:11:19    

jlighty a écrit :

es tu obligé d'utiliser awk pour récupérer le numéro majeur ?


Non.

Citation :

avec cut et fgrep c'est possible

cat /proc/devices | fgrep $module | cut -f1 -d ' '




Ca me va. Je teste ça demain au boulot.
 
C'est OK.
 
Merci
 
Emmanuel


Message édité par Emmanuel Delahaye le 25-05-2005 à 09:32:34

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 24-05-2005 à 20:20:08    

j'ai essayé d'autres possibilités (en ajouter/retirant les antislash)
ce code devrait marché :

Code :
  1. major=$(awk " \$2==\"$module\" {print \$1 }"  /proc/devices)


Reply

Marsh Posté le 24-05-2005 à 20:58:23    

jlighty a écrit :

j'ai essayé d'autres possibilités (en ajouter/retirant les antislash)
ce code devrait marché :

Code :
  1. major=$(awk " \$2==\"$module\" {print \$1 }"  /proc/devices)



Ok, merci. Petits exercices du matin à venir!


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed