Successivo: Stack di esecuzione, Precedente: Controllo esecuzione debugger, Su: Lista dei comandi di debug [Contenuti][Indice]
I comandi per vedere e modificare variabili all’interno di gawk
sono:
display
[var | $
n]Aggiunge la variabile var (o il campo $n
) alla lista di
visualizzazione. Il valore della variabile o del campo è visualizzato ogni
volta che il programma s’interrompe.
Ogni variabile aggiunta alla lista è identificata da un numero univoco:
gawk> display x -| 10: x = 1
La riga qui sopra mostra il numero di elemento assegnato, il nome della
variabile e il suo
valore corrente. Se la variabile di display fa riferimento a un parametro di
funzione, è cancellata silenziosamente dalla lista non appena l’esecuzione
raggiunge un contesto dove la variabile con quel nome non esiste più.
Senza argomenti, display
mostra i valori correnti degli elementi della
lista.
eval "istruzioni awk"
Valuta istruzioni awk nel contesto del programma in esecuzione.
Si può fare qualsiasi cosa che un programma awk
farebbe: assegnare
valori a variabili, chiamare funzioni, e così via.
NOTA: Non è possibile usare
eval
per valutare un’espressione che contenga una qualsiasi delle seguenti istruzioni:exit
,getline
,next
,nextfile
, oreturn
.
eval
param, …end
Questa forma di eval
è simile alla precedente, solo che permette di
definire
“variabili locali” che esistono nel contesto delle istruzioni awk,
invece di usare variabili o parametri di funzione già definiti nel programma.
print
var1[,
var2 …]p
var1[,
var2 …]Stampa i valori di una o più variabili o campi di gawk
.
I campi devono essere indicizzati usando delle costanti:
gawk> print $3
Questo stampa il terzo campo del record di input (se il campo specificato non esiste, stampa il ‘campo nullo’). Una variabile può essere un elemento di un vettore, avente come indice una stringa di valore costante. Per stampare il contenuto di un vettore, si deve anteporre il simbolo ‘@’ al nome del vettore:
gawk> print @a
L’esempio stampa gli indici e i corrispondenti valori di tutti gli elementi
del vettore a
.
printf
formato [,
arg …]Stampa un testo formattato. Il formato può includere sequenze di protezione, come ‘\n’ (vedi la sezione Sequenze di protezione). Non viene stampato nessun ritorno a capo che non sia stato specificato esplicitamente.
set
var=
valoreAssegna un valore costante (numero o stringa) a una variabile o a un campo di
awk
.
I valori di stringa devono essere racchiusi tra doppi apici
("
…"
).
Si possono impostare anche delle variabili speciali di awk
, come
FS
, NF
, NR
, e così via.
watch
var | $
n ["espressione"
]w
var | $
n ["espressione"
]Aggiunge la variabile var (o il campo $n
) alla lista dei
punti d’osservazione. Il debugger quindi interrompe il programma ogni volta
che il valore della variabile o del campo cambia. A ogni elemento osservato
viene assegnato un numero che può essere usato per cancellarlo dalla lista
usando il comando unwatch
[non-osservare più].
Definendo un punto d’osservazione, si può anche porre una condizione, che è
un’espressione awk
(racchiusa tra doppi apici) che il debugger valuta
ogni volta che viene raggiunto il punto d’osservazione. Se la condizione è
vera, il debugger interrompe l’esecuzione e rimane in attesa di un comando.
Altrimenti, gawk
prosegue nell’esecuzione del programma.
undisplay
[n]Rimuove l’elemento numero n (o tutti gli elementi, se non vi sono argomenti) dalla lista delle visualizzazioni automatiche.
unwatch
[n]Rimuove l’elemento numero n (o tutti gli elementi, se non vi sono argomenti) dalla lista dei punti d’osservazione.
Successivo: Stack di esecuzione, Precedente: Controllo esecuzione debugger, Su: Lista dei comandi di debug [Contenuti][Indice]