[ImoLUG] R: Help debus script bash

valerio.balbi@gmail.com valerio.balbi@gmail.com
Dom 11 Lug 2010 19:07:20 CEST


Bale serve un po' di olio di gomito, nel senso che devi (imho) cominciare a segmentare il programmammello.

Ed usare ovviamente il comando che hai trovato su google
Io uso la versione
Set -x e set +x
Per attivare e disattivare l'echoing


Daidai che ce la fai
Le mail ti raggiungono ovunque con BlackBerry® from Vodafone!

-----Original Message-----
From: Paride Balestri <paridebalestri@gmail.com>
Sender: imolug-bounces+valerio.balbi=gmail.com@lists.linux.it
Date: Sun, 11 Jul 2010 15:07:13 
To: ImoLUG - ML<imolug@lists.linux.it>
Reply-To: imolug@lists.linux.it
Subject: [ImoLUG] Help debus script bash

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
_______________________________________________
ImoLUG mailing list
imolug@lists.linux.it
http://lists.linux.it/listinfo/imolug
Connettivita' offerta da Waymedia - http://www.waymedia.it/


Maggiori informazioni sulla lista ImoLUG