[gilug.org] programacio bash

David Casals hakd0c telefonica net
2007-06-18 16:55:41 UTC


Hola a tots,

Necesito saber quins programes d'una llista previament especificada 
estan engegats i faig el seguent:

#!/bin/bash

programes=/home/dcasals/llistar.txt

DBS=`ps xo 'comm'`

for i in $DBS;

do 

    if grep -q $i $programes ; then

        echo "existe";

    

    fi

done



Aixo funciona si el contingut de $i es igual a una de les linies del 
fitxer, en cas que la cadena continguda a $i sigui un fragment d'una 
linia del fitxer ja no entra a l'if.

Exeple:

Jo tinc engegat el firefox (en el meu cas s'esta executant firefox-bin) 
i al fitxer i tinc firefox-bin em mostrara existe
si tinc engegat el firefox (firefox-bin) i al fitxer i tinc firefox no 
em fa res i m'interessaria que també entres dintre l'if.

Basicament m'agradaria que la comparacio fos a la inversa que si una 
linia del fitxer conte una cadena que es troba dintre de la variable $i 
entres a l'if.

Si giro les variables a l'if i faig un:

grep -q $programes $i el grep es queixa que no troba el fitxer de nom el 
contingut de la variable $i

Atentament
David Casals
hakd0c



Més informació sobre la llista de correu gilug