Pagina 1 di 1

Domanda bash

Inviato: lun 5 ago 2013, 20:33
da darkstaring
Ciao :)..
Sto cercando di fare una cosetta un bash e non sto riuscendo :)..

Molto in breve ho un vettore con dei percorsi di script es "/opt/htv/moduli/esegui_shell.sh"
Vorrei capire se gli scipt sono in esecuzione...
pensavo a awk con ps :

in pratica dentro al ciclo che scorre sul vettore faccio:

Codice: Seleziona tutto

x=$( echo "awk '!/"awk${vett_pwd[$i]//\//\/\&\&\/}"/{print \$0}'" );
per ottenere:
awk '!/awk/&&/opt/&&/htv/&&/moduli/&&/esegui_shell.sh/{print $0}'
ma poi non riesco a cercare con awk sull'output di 'ps -aux'
ho provato "ps aux | $x" ma non và con errore
awk: linea com.:1: '!/awk/&&/opt/&&/htv/&&/moduli/&&/esegui_shell.sh/{print
awk: linea com.:1: ^ carattere ''' non valido in un'espressione
Consigli?
Meglio usare grep?

Re: Domanda bash

Inviato: lun 5 ago 2013, 20:57
da nico giraldi
Non so ad un pc linux ora e non posso controllare ma prova a controllare se quando dai un pattern con un operatore davanti non devi esplicitare un campo, cioè

Codice: Seleziona tutto

awk '$0!~<pattern>'
e poi perchè fare echo? $() dovrebbe bastare ad eseguire il comando.

Re: Domanda bash

Inviato: lun 5 ago 2013, 21:01
da d4z_c0nf
Guarda, non so se hai la necessità di usare awk, in caso contrario io farei:

Codice: Seleziona tutto

x=$(pgrep ${vett_pwd[$i]##*/})
pgrep ti restituisce l'id del processo, se esiste.

Re: Domanda bash

Inviato: lun 5 ago 2013, 21:15
da darkstaring
Bello pgrep... no lo conoscevo :)...

Re: Domanda bash

Inviato: lun 5 ago 2013, 21:19
da d4z_c0nf
Scoperto per caso tempo fa :)

Comunque mi "correggo", restituisci gli id dei processi, perché ovviamente ce ne possono essere diversi..

Re: Domanda bash

Inviato: lun 5 ago 2013, 22:30
da darkstaring
Si :).. con "-f" li ritorna tutti...

Sicuramente tornerà utile..
Grazie :)

Re: Domanda bash

Inviato: lun 5 ago 2013, 22:43
da d4z_c0nf
Non avevo indagato, in pratica "pgrep pattern" restituisce tutti i pid dei processi il cui nome matchano il pattern. L'opzione -f ti permette di matchare lo specifico comando (quindi l'intera command line), ottimo. Grazie anche a te :)