[ImoLUG] Help debus script bash
Paride Balestri
paridebalestri@gmail.com
Dom 11 Lug 2010 15:07:13 CEST
Ciao a tutti!
Sto scrivendo uno script in bash ma ho un po' di problemi con le variabili.
Avrei bisogno di fare del debug, magari step-by-step, e magari potendo
vedere anche lo stack delle chiamate, le variabili "in pancia" ecc....
Googlando ho trovato che mettendo nello script come prima riga
#!/bin/sh -x attivo il debug... ma non è esattamente quello che vorrei...
In sostanza il mio primo problema da risolvere è il seguente:
a) leggo il pid di un processo dal suo file in /var/run
b) verifico con ps se il pid compare tra i processi attivi (per evitare
che il file di pid sia rimasto "appeso")
c) se a=b allora tutto ok altrimenti segnalo con un notify che il
processo non sta girando.
Il problema è quando vado a fare la comparazione tra le 2 stringhe che
contengono il pid, ovvero:
pidfile=`cat /var/run/freepops.pid`
pidprocess=`ps ax -o pid -o comm | grep freepopsd`
echo Pidfiile len: ${#pidfile} <----- questo restituisce 4
pidfile=" $pidfile freepopsd" <------ aggiungo la stringa in modo da
renderla "uguale" a $pidprocess
echo Pidfile new len: ${#pidfile} <------ questo restituisce 14
echo Pidfile: $pidfile
echo $pidfile | hexdump -C
echo Pidprocess: $pidprocess
echo $pidprocess | hexdump -C
echo Pidprocess len: ${#pidprocess} <----- questo restituisce 15
if [ pidfile = pidprocess ]; then <------ questo restituisce false
echo WOW !!!!
else
echo OUCH !!!
fi
Il problema è che non capisco come mai se con hexdump le due variabili
sono identiche, per la lunghezza non lo sono....
Non riesco a capire.... ecco perchè mi servirebbe il debug di cui
parlavo sopra...
Qualcuno ha qualche idea ?
Grazie a tutti
Ciauz
bale
Maggiori informazioni sulla lista
ImoLUG