bash
Par dup, mercredi 2 août 2006 à 19:58 :: devel :: #84 :: rss
Qui n'utilise pas / n'a pas réalisé des scripts en bash ?? Ces petites bêtes sont très utiles ! Lorsqu'il s'agit de parser des fichiers les coreutils montrent toute leur puissance (merci cut, sed, head, tail, ....). Depuis quelques temps je cherchais comment faire pour lire deux variables d'une même ligne d'un fichier. J'ai fini par trouver dans un script d'initialisation de la debian (je crois) la manière de le faire. J'ai utilisé cette méthode dans un petit script qui me charge (pour ma RIM) les modules PCI nécessaires. Voici la partie qui charge tous les modules associés au bus pci (excepté ceux dédiés au son ainsi que tous les modules se terminant par 'fb' (allez donc savoir pourquoi ;)).
lspci -n | grep -v " 0401:" | cut -d':' -f3,4 | sed "s/ //" | cut -d' ' -f1 | sed "s/:/ /" |
while read vendor model; do
for module in $(grep "[a-zA-Z0-9]*[ ]*0x0000$vendor 0x0000$model" /lib/modules/$kernel/modules.pcimap |cut -d' ' -f1| sed "s/ //g" | grep -v "fb$"); do
echo "Loading module $module :" | tee -a $module_log
echo "$module" >>/etc/modules
/sbin/modprobe $module >dev/null 2>&1 | tee -a $module_log
echo " ";
done;
done;
Tout est dans le while read vendor model; do
(et le pipe juste avant!!)
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.